Python不从函数返回值
为什么print print value=、sss、oa为0而不是1您需要了解python中局部变量的工作方式。您得到的是0,0,因为在def calc sss中,oa修改的是本地sss和oa,而不是传递到main中打印的sss和oa变量 有很多可能的方法来完成你的任务。但是,请尝试此返回局部变量的代码修改版本:Python不从函数返回值,python,function,Python,Function,为什么print print value=、sss、oa为0而不是1您需要了解python中局部变量的工作方式。您得到的是0,0,因为在def calc sss中,oa修改的是本地sss和oa,而不是传递到main中打印的sss和oa变量 有很多可能的方法来完成你的任务。但是,请尝试此返回局部变量的代码修改版本: def main(): sss = 0 oa = 0 calc (sss ,oa) print ("value = ",sss ,oa) def ca
def main():
sss = 0
oa = 0
calc (sss ,oa)
print ("value = ",sss ,oa)
def calc (sss ,oa):
sss = sss + 1
oa = oa + 1
main()
python中的函数参数是通过赋值传递的。在python中赋值时,将为不可变类型创建一个新对象,而新名称将作为对可变类型相同对象的另一个引用
这意味着将整数变量传递给calc函数会复制对象并将副本绑定到本地名称,因为内置整数是不可变的。这与可变类型的情况相反,在可变类型中,名称将是对原始对象的引用。您正在通过calc更改值,但在calc中递增的值sss是一个局部变量,您没有对尝试在main中递增的值执行任何操作。我建议你
def main():
sss = 0
oa = 0
sss, oa = calc (sss ,oa)
print ("value = ",sss ,oa)
def calc (sss ,oa):
sss = sss + 1
oa = oa + 1
return sss, oa
main()