gpt4 book ai didi

python - 如何访问函数的内部变量并在 python 中更改其值?

转载 作者:太空宇宙 更新时间:2023-11-03 12:50:21 24 4
gpt4 key购买 nike

>>> def nil():
... ss='nil'
... print ss
...
>>> nil()
nil
>>> nil.ss='kk'
>>> nil()
nil
>>> print nil.ss
kk

我知道在 python 中一切都是一个对象,所以函数也是一个对象,现在我想更改存储在函数中的 'ss' 变量的值,现在我试图通过使用 nil.ss 来更改它的值但是它没有改变..两个“ss”之间有什么区别?

最佳答案

第一个ss是函数的内部变量;第二个是函数的属性。它们不引用同一个对象。

不过,这里有一个方法可以做到这一点:

>>> def apple():
if not hasattr(apple, 'ss'): # This way it'll only be set inside the function once
apple.ss = 'nil'
return apple.ss

>>> apple()
'nil'
>>> apple.ss
'nil'
>>> apple.ss = 'kk'
>>> apple.ss
'kk'
>>> apple()
'kk'

关于python - 如何访问函数的内部变量并在 python 中更改其值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11401563/

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