为了账号安全,请及时绑定邮箱和手机立即绑定

python调用类下的方法报错

python调用类下的方法报错

郎朗坤 2019-03-29 10:58:21
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参数就是实例本身就有点不妥了,我觉得应该这样说:非静态方法的第一个参数是实例本身。
                            
查看完整回答
反对 回复 2019-03-29
  • 2 回答
  • 0 关注
  • 948 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号