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

Python Contact类__init__修正后出现参数错误的问题求助

问题原因解析

1. 错误写法(___init__)能运行的原因

Python中类的构造函数必须严格命名为__init__(前后各2个下划线)。当你写成___init__(前后3个下划线)时,这个方法只是个普通自定义方法,不会被Python当作构造函数调用。

此时Python会自动使用继承自object类的默认构造函数,它的签名是def __init__(self):——仅接收self一个参数。你调用Contact('dummy.xml')时虽然传了第二个参数,但因为默认构造函数不会处理额外参数,且你的核心业务逻辑(比如读取XML文件)可能在其他方法实现,所以程序能正常运行并输出结果。

2. 修正后报错的原因

你修正为__init__(file_path)时遗漏了self参数。Python中类的实例方法(包括构造函数)必须把self作为第一个参数(代表实例本身,由Python自动传递)。

调用Contact('dummy.xml')时,Python会自动把新创建的Contact实例作为第一个参数传给__init__,再加上你传入的'dummy.xml',总共是2个参数,但你的__init__只定义了file_path这1个参数,因此触发TypeError,提示“Contact.__init__() takes 1 positional argument but 2 were given”。

正确的构造函数写法

def __init__(self, file_path):
    # 初始化逻辑示例
    self.file_path = file_path
    # 后续读取XML等操作

内容的提问来源于stack exchange,提问作者Paul-ET

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:45:26