【发布时间】:2018-12-21 07:43:41
【问题描述】:
我第一次在这里编写元类。这很简单,因为我需要它来处理特定的情况,但是就这样吧。
Pylint 抛出此错误 no-value-for-parameter / No value for argument 'cls' in unbound method call,特别是在下面注释的行中。
这是我的代码
class ContractType(type):
_instance = None
_contract_interface = None
def create_contract_interface(cls):
contract_json = open(str(settings.CONTRACT_DIR + cls.token_name)).read()
cls._contract_interface = json.loads(contract_json)
return cls._contract_interface
def create_instance(cls):
cls._instance = w3.eth.contract(abi=cls._contract_interface['abi'], bytecode=cls._contract_interface['bytecode'])
return cls._instance
def __getattr__(cls, key):
if not cls._contract_interface: # This line is failing pylint
cls.create_contract_interface()
if not cls._instance: # This line is failing pylint
cls.create_instance()
if key == "contract_interface":
return cls._contract_interface
return getattr(cls._instance, key, None)
class Tempo(metaclass=ContractType):
token_name = 'TempoToken.json'
知道为什么 pylint 会抛出这个错误吗?该代码按预期工作。我发现了这个问题here,但这不完全是我的情况。
【问题讨论】:
-
我很确定“错误”在下一行(调用
create_contract_interface和create_instance)。在我看来,这仍然是一个误报。