python - PyCharm。意外的参数 可能的被调用者
问题描述
我在 PyCharm 中编写并得到一个错误(在“func(dict_data)”行中):意外的参数(s)可能的被调用者:A.foo(dict_data:dict)A.bar(dict_data:dict)。
是 PyCharm 错误还是我做错了什么?
PyCharm 2020.3
class A:
def __init__(self):
self.functions = {
"foo": self.foo,
"bar": self.bar
}
def typing(self, dict_data: dict):
for key, value in dict_data.items():
if key in self.functions:
func = self.functions[value["type"]]
func(dict_data)
def foo(self, dict_data: dict):
print(dict_data)
def bar(self, dict_data: dict):
print(dict_data)
class B:
def __init__(self):
self.data = {
"foo": {"type": "foo"},
"bar": {"type": "bar"}
}
def get(self) -> dict:
return self.data
if __name__ == "__main__":
b = B()
data = b.get()
a = A()
a.typing(data)
解决方案
func 实际上是您的代码中的一个变量,但是您将它作为一个在那里不存在的函数来调用,因此 PyCharm 正在猜测您可能想要使用哪个函数来代替它可以容纳 dict_data 作为它的参数。
图中的这个'def function_name(arguments:datatype)'是函数的识别方式,但你的ss有关键字'Union',因此func的数据类型是Union。
推荐阅读
- r - 如何在 Windows 10 上的 R 中安装 X11
- c# - 如何使用.net core 实现图像缓存?
- postgresql - PostgreSQL 查询需要很长时间
- python - 自动生成重载运算符?
- c++ - 如何将 addr_in 结构分配给 uint8_t 数组
- r - 如何在 emacs ess 中设置自定义自动字符替换?
- javascript - 将 Tsheets api 连接到 Google 应用脚本时出错
- python-3.x - chrome 应用程序模式下的 Jupyter 笔记本
- python - 我需要将变量从我的 python 脚本传递到远程服务器
- postgresql - WAL 配置 SSL 关闭