嵌套类报错:Page1.__init__.My_Data.__init__()收到意外关键字参数'Name'
TypeError错误排查与解决方法
错误原因
你的My_Data类的__init__方法未定义Name关键字参数,但你在实例化这个类时传入了Name参数,导致触发TypeError。从你提供的代码看,My_Data的__init__仅声明了实例变量的类型注解,没有接收任何参数。
解决方法
方法1:让__init__接收对应参数并赋值
修改My_Data的构造方法,添加Name和Year参数,将传入的值绑定到实例变量:
class My_Data(): def __init__(self, Name: str, Year: float): self.Name = Name self.Year = Year
之后实例化时即可正常传入关键字参数,例如:My_Data(Name="示例名称", Year=2024)。
方法2:实例化时不传入参数,后续赋值
如果不需要在实例化时初始化变量,只需确保实例化My_Data时不传入任何关键字参数,之后再给实例变量赋值:
data = My_Data() data.Name = "示例名称" data.Year = 2024
额外建议
把My_Data嵌套在Page1的__init__方法内部并非常规写法,建议将其放在Page1类内部(但不在__init__里)或作为独立类定义,这样代码结构更清晰,也能避免不必要的作用域问题:
class Page1(tk.Frame): class My_Data(): def __init__(self, Name: str, Year: float): self.Name = Name self.Year = Year def __init__(self, master, other, **kw): super().__init__(master, **kw) self.configure(bg='white') def function1(self): My_Dictionary = {} x = cursor.execute("sql")
内容的提问来源于stack exchange,提问作者user21057836
相关产品推荐
相关产品推荐

