我是Python的新手。这是我遇到的一个问题。
假设有一个名为set1(x)
的函数。
以下是代码:
def set1(x):
x = 1;
当我运行时,
m = 5
set1(m)
m
m
的值仍为5。
那么,如果我希望每当我调用set1()
函数时参数变为1,我该如何编写函数?
答案 0 :(得分:1)
您可以返回值
def set1():
return 1;
并将其命名为
m=5
m = set1()
print (m)
它会打印1
另一种方法,但错误的方法是将其global
def set1():
global m
m = 1
答案 1 :(得分:0)
函数使用一个本地命名空间来声明它们的变量,这意味着在大多数情况下,当你将一个参数传递给一个函数时,它不会影响函数之外的参数(在全局命名空间中)。因此,当函数内的值发生变化时,它不会在函数外部发生变化。
如果希望函数更改值,则需要返回值:
def set1(x):
x=1
return x
>>> m=5
>>> m = set1(m)
>>> m
1
这就是说,如果你的论点是可变的,它可以改变。
def set2(x):
x[0] = 1
>>> m = [2]
>>> set2(m)
>>> m[0]
1