【发布时间】:2020-02-09 23:48:35
【问题描述】:
我正在使用将字典作为输入的方法构建一个类,但 Pycharm 会显示警告。
''' 预期类型 'TestClass',得到 'Dict[str, int]' 而不是更少...(⌘F1) 检查信息:此检查检测函数调用表达式中的类型错误。由于动态调度和鸭子类型,这在有限但有用的情况下是可能的。可以在文档字符串或 Python 3 函数注释中指定函数参数的类型 '''
class TestClass:
def __getitem__(self, index):
return self[index]
def get_keys(self):
return list(self.keys())
dict_input = {'a':123, 'b':456}
TestClass.get_keys(dict_input)
所以我在这里收到警告:
TestClass.get_keys(dict_input)
这个警告是什么意思?修复它的方法是什么?
【问题讨论】:
-
您的代码没有多大意义。
get_keys是一个实例方法,你应该在类的实例上调用它。但是您的代码中没有任何地方可以接受字典,所以我很清楚密钥应该来自哪里。 -
get_key()是一个方法 - 它通常会在TestClass的实例 上调用,而不是Testclass本身。除了传递给所有方法的隐式self之外,它不会接受任何参数,所以我不知道你传递的那个 dict 应该做什么。