Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在子类的父类中访问重写的类变量_Python - Fatal编程技术网

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)