我正在尝试构建一个元类,我只是在想我真的懂了它。我想为这个元类的每个实例都有类方法。调用对方的元类方法的最佳做法是什么?
class MyMeta(type):
"""A metaclass"""
def __new__(mcs, name, bases, attributes):
pass
def _foo(cls):
pass
def _bar(cls):
cls._foo()
当我在它上面运行pylint的,该cls._foo
有困难:
[pylint] E1120:No value for argument 'cls' in unbound method call
当我尝试运行的代码(我的代码是比这更复杂),这似乎是运行良好,并做我期待它做什么。那么我该如何解决这个问题呢?这究竟意味着什么。
这听起来像其他错误有关没有正确地声明为@staticmethods
东西,但我不能标记为@classmethod
因为那么它将是一个Metaclass方法。
相关搜索似乎是在讨论人们动态添加构造函数的地方,我不认为这是这种情况。我是否仍然对元类有所误解?
我真正想要的是在元类中定义的相互调用的类方法。有一个更好的方法吗?
https://stackoverflow.com/questions/35208443/pylint-complains-no-value-for-argument-cls – SteveJ
@SteveJ这就是我特别提到的情况。该问题中的OP期望构造函数在派生类中声明。这里不是这种情况。 – McKay