Python传值与传址
Posted 算法与编程之美
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python传值与传址相关的知识,希望对你有一定的参考价值。
问题
传值还是传址是Python程序设计中最容易混淆和出错的一类编程方式。
方法
传值
'''
(1) 数字
'''
a = 1
def foo1(a):
a = 10
foo1(a)
print(f'a = a') # 1
'''
(2) 字符串
'''
b = 'hello'
def foo2(b):
b = 'world'
foo2(b)
print(f'b = b') # hello
'''
(3) 元组
'''
c = (1,2,3)
def foo3(c):
c = (4,5,6)
foo3(c)
print(f'c = c') # (1, 2, 3)
传址
'''
(1) 列表
'''
a = [1,2,3]
def foo1(a):
a[0] = 5
a[1] = 5
a[2] = 5
foo1(a)
print(f'a = a') # a = [5, 5, 5]
'''
(2) 字典
'''
b = 'name':'chen'
def foo2(b):
b['name'] = 'zhen'
foo2(b)
print(f'b = b') # b = 'name': 'zhen'
'''
(3) 对象
'''
class User:
def __init(self):
self.username = 'chen'
def foo4(user):
user.username = 'zhen'
u = User()
foo4(u)
print(f'user = u.username') # user = zhen
结语
- 数字、字符串、元组是传值;
- 列表、字典是传址。
以上是关于Python传值与传址的主要内容,如果未能解决你的问题,请参考以下文章