Python类方法调用报错:为何期望4个参数?我错在哪里?
问题原因与解决方案
嘿,我来帮你揪出这个问题的根源~
你代码里的核心错误是没有正确实例化类,咱们一步步拆解来看:
错误点分析
看你这段代码:
a=smf
这里你把smf这个类本身赋值给了变量a,而不是创建一个类的实例对象。当你用类直接调用check方法时,Python不会自动帮你把self参数传进去——毕竟self本来就代表类的实例对象啊!
你的check方法定义需要4个参数:self, A, B, C,但你调用的时候只传了3个input(),自然就会报错“期望4个参数”了。
修正后的代码
只需要给类加上括号,完成实例化就行:
class smf(): def __init__(self): pass def check(self, A, B, C): print(A) a = smf() # 加括号创建类的实例 a.check(input(), input(), input())
补充小知识
- 当你用实例对象(比如上面的
a)调用类方法时,Python会自动把这个实例作为第一个参数(也就是self)传递给方法,所以你只需要传A、B、C这三个参数就够了。 - 如果直接用类调用方法,那它就和普通函数没区别了,你得手动把实例作为第一个参数传进去,这显然不是咱们写类的初衷~
内容的提问来源于stack exchange,提问作者NewNoobUser
相关产品推荐
相关产品推荐

