【发布时间】:2019-05-24 13:30:18
【问题描述】:
对不起,如果标题不准确,不知道如何正确命名。 问题是。如果我执行此代码:
num = 1
def test_func2(arg):
arg = 10
test_func2(num)
print(num)
num 显然会保持 1 但是如果我对对象做类似的事情
class TestClass:
def __init__(self):
self.one = 1
self.two = 2
test_obj = TestClass()
def test_func(arg):
arg.one = 10
test_func(test_obj)
print(test_obj.one)
test_obj.one 的值会变成 10。为什么整数是按值传递,而用户定义的对象是按引用传递?
【问题讨论】:
-
这是一个关于价值和参考的大话题。我建议您搜索更多有关它的信息。
-
按引用传递与按值传递。
-
@GenoChen 不,参数总是以相同的方式传递。参数引用传递给函数的相同对象。
标签: python pass-by-value