gpt4 book ai didi

Python:全局变量、前缀为 "self."的变量、局部变量之间有什么区别?

转载 作者:行者123 更新时间:2023-11-28 19:45:32 29 4
gpt4 key购买 nike

多年来,我接触过类似 C/C++/Java 的语法,而 Python 变量的定义方式让我有点困惑。谁能描述一下问题中提到的三个之间的区别是什么?

最佳答案

全局变量就是这样——一个可以全局访问的变量。局部变量是只能在当前范围内访问的变量,例如在单个函数定义中使用的临时变量。实例变量(例如:使用 self. 前缀时)是与对象的特定实例关联的数据。当然,您也可以使用 object.x 在对象外部引用实例对象,其中 object 是对该对象的引用。

如果变量以self 为前缀,则它既不是局部变量也不是全局变量。它是对象特定实例构成的一部分。粗略地说,实例变量表示特定对象的属性。

在下面的例子中,lx 是一个局部变量,局部于方法 greetgx 是一个全局变量,可以在模块的任何地方访问,ix 是一个实例变量,它可以为对象的每个实例提供唯一的值。在对象定义内部引用时,您将使用前缀 self 引用 ix,而在对象定义外部引用对象引用的前缀。

gx = "hello"
class Foo:
def __init__(self, who):
self.ix = who
def greet(self):
lx = "%s, %s" % (gx, self.ix)
return lx

foo = Foo("world")
print foo.greet()
print foo.ix

关于Python:全局变量、前缀为 "self."的变量、局部变量之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8641200/

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