Python写了下面的代码:classHuman:defsay(tell,text):print'@%s%s'%(tell,text)p=Human()p.say('Paul','hello')运行后报错,提示:Traceback(mostrecentcalllast):File"Untitled.py",line6,inp.say('Paul','hello')TypeError:say()takesexactly2arguments(3given)可是我的say()只有两个参数啊
2 回答
有只小跳蛙
TA贡献1824条经验 获得超8个赞
具体的,@蓝皮鼠已经说的很清楚了!我想补充一下,self参数其实就是实例本身。python为每一个非静态方法绑定到相应的实例中,但是self并不是python的关键字所以,你可以将self替换为任何合法的名字。classHuman:defsay(Tedd,tell,text):print'@%s%s'%(tell,text)p=Human()p.say('Paul','hello')所以,其实上面的self参数就是实例本身就有点不妥了,我觉得应该这样说:非静态方法的第一个参数是实例本身。
添加回答
举报
0/150
提交
取消
