方法没有重载

在其他语言中,我们可以定义多个重名的方法,只要保证方法签名唯一即可,方法签名包含三个部分:方法名,参数数量,参数类型

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是动态语言,我们可以动态的为类添加新的方法,或者动态的修改类已有的方法