[英]Importing function in Python class got TypeError multiple values for argument
运行 Dummy.py 文件产生了错误:
TypeError: create_scene_tab() got multiple values for argument 'initial_data_filepath'
假人.py
class A:
from dum2 import create_scene_tab
def __init__(self):
pass
def create_DataCollectionPreview_tab(self, filepath: str):
self.create_scene_tab(self, "Data Collection Preview",
initial_data_filepath=filepath)
a = A()
a.create_DataCollectionPreview_tab("a.txt")
dum2.py
def create_scene_tab(self, key, initial_data_filepath: str = ""):
print(initial_data_filepath)
但是如果我在create_scene_tab()
中添加一个额外的参数,它就会变成:
dum2.py
def create_scene_tab(self, another_arg, key, initial_data_filepath: str = ""):
print(initial_data_filepath)
错误消失。 为什么?
请不要问我为什么要导入并按原样称呼它。 我只是在简化一个大程序(Python 3.6.8)。
当您在实例上调用方法时, self
是隐式传递的,因此您不需要显式传递它。
self.create_scene_tab("Data Collection Preview",
initial_data_filepath=filepath)
这实际上是在做类似于
A.create_scene_tab(self, "Data Collection Preview",
initial_data_filepath=filepath)
因此,当您明确地将self
作为参数传递时,您实际上是在做
A.create_scene_tab(self, self, "Data Collection Preview",
initial_data_filepath=filepath)
这就是为什么你观察到额外的论点似乎不知从何而来。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.