You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

嵌套类报错: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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 09:55:23