gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 08:36:57 25 4
gpt4 key购买 nike

我是 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

希望这对您有所帮助!

关于python - 如何让一个函数对调用它的对象做一些事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48275876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com