gpt4 book ai didi

python - 如何访问实例变量隐藏的类变量?

转载 作者:行者123 更新时间:2023-12-01 09:14:13 25 4
gpt4 key购买 nike

我找不到我的问题的具体答案。您可能知道,Python 中的类可以同时拥有类变量和实例变量。如果一个类有一个类变量和一个实例变量,它们都具有相同的名称,我如何在该类的另一个方法中访问这两个变量?

假设有以下代码。如何访问这两个变量 myvar

class myclass:
myvar = "class variable"

def __init__(self):
self.myvar = "instance variable"
pass

def test(self):
# difference between self.myvar and myclass.myvar
return self.myvar


class_instance = myclass()
print(class_instance.test())
print(class_instance.myvar) # "class variable" or "instance variable"

这里,如果我从 __init__ 中删除 myvar,则 self.myvar 将引用类变量,如果我添加它, self.myvar 将引用实例变量。那么实例变量优先于类变量是不是有规则呢?我知道我可以使用 myclass.myvar 来引用类成员,但在上面代码的最后一行 class_instance.myvar 将引用类变量和实例变量。

最佳答案

首先,我假设您使用的是 Python 3。如果不是这种情况,您应该将第一行更改为:class myclass(object)

要访问实例变量,可以使用:class_instance.myvar

要访问类变量,您可以使用:type(class_instance).myvar

关于python - 如何访问实例变量隐藏的类变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51395567/

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