继承(好处:代码重用,灵活扩展)
class Animal():
def __init__(self):
self.__name = None
pass
@property #装饰器 #让子类间接访问父类私有属性的方法
def name(self):
return self.__name
pass
@name.setter
def name(self,name):
print("调用setter方法")
self.__name = name #赋值写法
pass
@name.getter #内容同装饰器的方法相同,不过还是写上好一点
def name(self):
print("调用getter方法")
return self.__name
pass
def getName(self):
return self.__name
pass
class Wolf(Animal):
def __init__(self):
pass
pass
class Dog(Wolf):
pass
class Pig(Animal):
pass
dog = Animal()
dog.name = "二哈" #有赋值 #调用setter方法,替换,代替执行
print(dog.name) #只是访问 #调用getter方法,替换
print(dog.getName())
wolf = Wolf()
wolf.name = "灰太狼"
print(wolf.name)
# print(wolf.__name) #子类不能直接访问父类的私有属性和私有方法,可以间接访问,上面的装饰器和setter、getter方法就是间接访问的前提
#多重继承/间接继承
dog = Dog
dog.name = "佩奇"
print(dog.name)
#多继承(一个类同时继承多个父类)
class Monster(Dog,Pig,Wolf):
pass
m = Monster()
m.name = "四不像"
print(m.name)
ps:本文最重要的property装饰器、setter、getter方法,让子类可以间接访问父类的私有属性和方法
以上内容仅供参考,切勿用于商业用途,如有雷同,纯属偶然!