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

如何在Python中使用方法重载?

如何在Python中使用方法重载?

ITMISS 2019-12-12 14:00:39
我正在尝试在Python中实现方法重载:class A:    def stackoverflow(self):            print 'first method'    def stackoverflow(self, i):        print 'second method', iob=A()ob.stackoverflow(2)但是输出是second method 2; 类似地:class A:    def stackoverflow(self):            print 'first method'    def stackoverflow(self, i):        print 'second method', iob=A()ob.stackoverflow()给Traceback (most recent call last):  File "my.py", line 9, in <module>    ob.stackoverflow()TypeError: stackoverflow() takes exactly 2 arguments (1 given)我该如何工作?
查看完整描述

3 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

它是方法重载而不是方法重写。而在Python中,您可以通过一个函数完成所有操作:


class A:


    def stackoverflow(self, i='some_default_value'):    

        print 'only method'


ob=A()

ob.stackoverflow(2)

ob.stackoverflow()

在Python中,不能有两个具有相同名称的方法,而且也不需要。


请参阅Python教程的默认参数值部分。有关避免的常见错误,请参见“最少惊讶”和“可变默认参数 ”。


编辑:有关Python 3.4中新的单调度通用功能的信息,请参见PEP 443。


查看完整回答
反对 回复 2019-12-12
  • 3 回答
  • 0 关注
  • 489 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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