【Python】传值与传址

简介: 【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

结语

  • 数字、字符串、元组是传值;
  • 列表、字典是传址。
目录
相关文章
|
6月前
|
Python
Python传参数:传值还是传址?
【2月更文挑战第18天】
144 6
|
C++ Python
Python函数参数传递:传值还是传引用
Python函数参数传递:传值还是传引用
59 0
|
存储 C++ Python
Python 函数中,参数是传值,还是传引用?
Python 函数中,参数是传值,还是传引用?
94 0
|
程序员 Python
Python 传值 or 传引用
python 不允许程序员选择采用传值还是传引用。
57 0
|
Python Java
Python 传值还是传引用
在实现二叉树的代码时,使用递归调用,当给空叶子节点赋值的时候,发现只修改了局部变量。 因此研究了一下Python中传值和传引用的问题。 实验 实验一 a = None print(id(a)) b = None print(id(b)) 432...
1133 0
|
8天前
|
设计模式 开发者 Python
Python编程中的设计模式:工厂方法模式###
本文深入浅出地探讨了Python编程中的一种重要设计模式——工厂方法模式。通过具体案例和代码示例,我们将了解工厂方法模式的定义、应用场景、实现步骤以及其优势与潜在缺点。无论你是Python新手还是有经验的开发者,都能从本文中获得关于如何在实际项目中有效应用工厂方法模式的启发。 ###