Skip to main content
 首页 » 编程设计

python之如何让一个函数对调用它的对象做一些事情

2025年05月04日22lexus

我是 python 的新手,无法理解这里出了什么问题。

将此函数放入 python shell 中:

def add1(x): 
    x += 1 

当我设置 p = 0 并调用

add1(p) 

我仍然得到 p = 0。给了什么?

最终,我试图制作一个“交易”功能,将两张随机牌添加到手牌中。我会用 deal(player1_hand) 来调用它吗?

请您参考如下方法:

您在这里缺少的是了解变量的范围。在 Python 中(就像在大多数编程语言中一样),进入一个函数意味着您正在进入一个新的范围,其中只有函数的参数以及任何全局变量可用。

离开函数时,这个作用域(以及对该作用域中的变量所做的任何更改)都会消失。这就是你得到这个的原因:

def add1(x): 
    x += 1 
p = 0 
add1(p) 
print(p) 

仍将显示 0。

这里最好和最干净的选择是让你的函数返回新值。这样,该函数就是所谓的“纯”函数,因为它仅对其参数进行操作,并产生一个新值,而不依赖于或影响全局范围:

def add1(x): 
    return x + 1 
p = 0 
p = add1(p) 
print(p) 

更多信息,您可以阅读https://python-textbok.readthedocs.io/en/1.0/Variables_and_Scope.html#variable-scope-and-lifetime

希望这对您有所帮助!