我正试图构建一个元类,我觉得我真的理解了它。我想为这个元类的每个实例都创建类方法。
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
当我尝试运行代码时(我的代码比这个更复杂),它似乎正在正常运行,并且正在执行我期望它执行的操作。那么我该如何解决这个问题?这究竟意味着什么。
听起来像是由于未正确声明为静态方法而引起的其他错误,但我无法将其标记为@classmethod,因为那样它将成为元类方法。
相关搜索似乎在谈论人们动态添加构造函数或其他内容的地方,而我不认为这是那种情况。我是否还在误解关于元类的某些事情?
我真正想要的是在元类中定义相互调用的类方法。有更好的方法吗?