如何在python 3.x中的同一类的名称空间中调用类方法

问题描述 投票:0回答:1

使用python实例时,可以使用self访问相同类的绑定方法。这将解析为与层次结构中相同类相对应的方法。

class A:
    def f(self):
        return 1

class B(A):
    def f(self):
        return 2

    def __init__(self):
        self.v = self.f()

b = B()
# b.v is set to 2

但是,当使用类方法时,没有明显的方法可以访问上述相同类的方法。

在我的用例中,上面的f必须是一个类方法,我需要根据对应于同一类的v来设置类变量f。有点像:

class A:
    @classmethod
    def f(cls):
        return 1

class B(A):
    @classmethod
    def f(cls):
        return 2

    v = resolution_of_B.f()

# B.v should be 2
python class-method
1个回答
0
投票

我不是100%肯定我了解您要做什么。

我在上面使用了您的代码,

class A:
    @classmethod
    def f(cls):
        return 1

class B:
    @classmethod
    def f(cls):
        return 2

print(B.f())

按照我的预期给了我2。 B是否应该像第一个示例一样是A的子类?

© www.soinside.com 2019 - 2024. All rights reserved.