1. 重写:
overirding:就是将函数重新定义一遍。
格式:
__str__( ):在调用print打印对象时自动调用,是给用户用的,是一个描述对象的方法。
__repr__( ):给机器用的,在Python解释器或者在cmd的黑屏终端里面输入,注意在没有str时,且有repr,str = repr,其实本事就是打印类本身想要实现的属性。
举例说明:
class Person(object): def __init__(self,name,age,height,weight): self.name = name self.age = age self.height = height self.weight = weight def __str__(self): # return "这里是__str__" return "%s-%d-%d-%d" %(self.name,self.age,self.height,self.weight) # def __repr__(self): # # return "这里是__str__" # return "%s-%d-%d-%d" %(self.name,self.age,self.height,self.weight) per = Person("hanmeimei",20,170,55) print(per) print(per.__str__()) # 其实不写入类体重,这里也是可以直接打印的。 # hanmeimei-20-170-55 # hanmeimei-20-170-55
优点:当一个对象的属性值很多的时候,兵器都需要打印,重写__str__方法后,简化了代码。
2. 重载:
overloading:就是一个类当中可以有一个以上的方法具有相同名称。
举例说明:
class Person(object): def __init__(self,name,age,height,weight): self.name = name self.age = age self.height = height self.weight = weight def run(self): print("run1") def run(self): print("run2") per = Person("hanmeimei",20,170,55) per.run() # 返回值:run2
其实我们发现Python并不需要重载。在C#语言中,重载时两个相同的函数名,且参数类型不一样,类似于:
run(int b)
run(long b)
这种函数时重载的现象。但是python里面的重载其实就是识别最后一个函数的意思。