我应该如何编写一个函数来将我输入的参数转换为1?

时间:2015-01-14 11:28:21

标签: python

我是Python的新手。这是我遇到的一个问题。

假设有一个名为set1(x)的函数。

以下是代码:

def set1(x):
    x = 1;

当我运行时,

m = 5
set1(m)
m

m的值仍为5。

那么,如果我希望每当我调用set1()函数时参数变为1,我该如何编写函数?

2 个答案:

答案 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