我正在嘗試構建一個元類,我只是在想我真的懂了它。我想爲這個元類的每個實例都有類方法。調用對方的元類方法的最佳做法是什麼?
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