方法没有重载
在其他语言中,我们可以定义多个重名的方法,只要保证方法签名唯一即可,方法签名包含三个部分:方法名,参数数量,参数类型
Python中方法的参数没有类型(调用时即确定参数的类型),参数的数量也可以由可变参数控制,因此,Python中是没有方法的重载的,定义一个方法既可以有多种调用方式,相当于实现了其他语言中的重载
如果我们在类体中定义了多个重名的方法,只有最后一个方法有效
建议:不使用重名的方法,Python中方法没有重载
1 class Person: 2 3 def say_hi(self): 4 print('hello') 5 6 def say_hi(self,name): 7 print('{0},hello'.format(name)) 8 9 p1 = Person() 10 p1.say_hi()
方法的动态性
Python是动态语言,我们可以动态的为类添加新的方法,或者动态的修改类已有的方法