python类中的同名方法

查看 133|回复 9
作者:paypojie   
python的类中如果定义了同名的方法 那么后定义的方法会覆盖掉之前定义的方法 请看例子
[Python] 纯文本查看 复制代码class Person():
    def __init__(self,name):
        self.name = name
    def run(self):
        print('1 跑步')
    def run(self,n):
        print('2 跑步',n)
p = Person('Anna')
p.run()以上代码运行会报错


image.png (173.86 KB, 下载次数: 0)
下载附件
2022-12-17 22:21 上传

将参数值传递到run()方法里就不会报错
[Asm] 纯文本查看 复制代码class Person():
    def __init__(self,name):
        self.name = name
    def run(self):
        print('1 跑步')
    def run(self,n):
        print('2 跑步',n)
p = Person('Anna')
p.run(2)


image.png (162.72 KB, 下载次数: 0)
下载附件
2022-12-17 22:21 上传

方法, 下载次数

无闻无问   

这货没有重载的东东,不然不会有@staticclass这玩意…
nj2004   

感谢分享!学习
paypojie
OP
  


无闻无问 发表于 2022-12-18 08:11
这货没有重载的东东,不然不会有@staticclass这玩意…

python没有重载
qzh阑珊梦   

你可以写成run(self,n=none)的形式
paypojie
OP
  


qzh阑珊梦 发表于 2022-12-18 09:12
你可以写成run(self,n=none)的形式

试了一下 确实可以
crazywawa   

Python中的函数参数可以用可变参数*args,不需要像Java一样方法重载
constwm   

学习python的第33天,感谢分享
paypojie
OP
  


constwm 发表于 2022-12-18 10:28
学习python的第33天,感谢分享

不用谢。
wangsking   

谢谢分享,共同学习,共同进步!
您需要登录后才可以回帖 登录 | 立即注册

返回顶部