gpt4 book ai didi

python - 在类外部定义实例变量

转载 作者:行者123 更新时间:2023-12-01 04:31:53 25 4
gpt4 key购买 nike

今天我在面试中被问到一个问题:“如果我们在类之外定义实例变量,它会显示任何错误吗”。

class temp():
a=0
b=0
def __init__(self,*args):
temp.a = args[0]
temp.b = args[1]
if len(args)>2 and args[2]:
print 'extra',args[2]

def display(self):
print self.a,self.b,self.c

a = temp(4,9)
b = temp(5,3)
a.c = 20
a.display()

如果我运行上面的代码,我会得到 c= 20 的值。我来自 c++ 背景,认为这会是错误,但不是...为什么会这样...为什么 python 允许在类外创建变量。

最佳答案

我建议阅读 Classes and Namespaces 上的 Python 文档。在Python中,实例只是另一种类型的命名空间,在类定义之外定义实例变量只需要在定义实例的名称和值字典中添加一个条目即可。将此与 C 进行对比,其中实例是根据类定义中列出的模式构建的实际内存块。一旦定义了类,就无法在事后插入属性。

关于python - 在类外部定义实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32284259/

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