Python 在子类的父类中访问重写的类变量
如何访问期望子类替换的类变量 这就是我想要得到的:Python 在子类的父类中访问重写的类变量,python,Python,如何访问期望子类替换的类变量 这就是我想要得到的: class Foo(): var = "Foo" @staticmethod def print_var(): print(Foo.var) class Bar(Foo): var = "Bar" >> Bar.print_var() >> "Bar 上面的代码打印“Foo”而不是“Bar”不要使用staticmethod。至少在这里使用: 这样可以在类上访问print\u
class Foo():
var = "Foo"
@staticmethod
def print_var():
print(Foo.var)
class Bar(Foo):
var = "Bar"
>> Bar.print_var()
>> "Bar
上面的代码打印“Foo”而不是“Bar”不要使用
staticmethod
。至少在这里使用:
这样可以在类上访问print\u var
,但会传递对当前类的引用,以便您可以在“right”对象上查找var
仅当您希望从方法中删除所有上下文,并将其再次转换为常规函数时,才使用staticmethod
演示:
不要使用
静态方法
。至少在这里使用:
这样可以在类上访问print\u var
,但会传递对当前类的引用,以便您可以在“right”对象上查找var
仅当您希望从方法中删除所有上下文,并将其再次转换为常规函数时,才使用staticmethod
演示:
使用
classmethod
:
class Foo():
@classmethod
def print_var(cls):
print(cls.var)
使用
classmethod
:
class Foo():
@classmethod
def print_var(cls):
print(cls.var)
那么为什么要使用静态方法呢?我希望不创建实例就可以访问它。这是一个糟糕的方法吗?我正在尝试干涸一些代码,为什么你要使用静态方法呢?我想在不创建实例的情况下访问它。这是一个糟糕的方法吗?我在试着干掉一些代码快告诉我,你在
classmethod
中有一个小小的打字错误,谢谢!对我来说,两者之间的界线有点模糊。快告诉我,你在classmethod
中有一个小小的打字错误,谢谢!对我来说,两者之间的界限有点模糊。
class Foo():
@classmethod
def print_var(cls):
print(cls.var)