05.面向对象(封装、继承、多态)
简单操作:
""" 类和对象 """ # 定义类 class Person(object): # 定义属性【类属性】:可以用类或者对象调用 name = "张三" __cardPass = "775885" # 给私有属性提供get和set方法 def setCardPass(self, cardPass): self.__cardPass = cardPass def getCardPass(self): return self.__cardPass # 类方法 @classmethod def sleep(cls): print(f"{cls.name}正在睡觉") # 静态方法 @staticmethod def playDD(): print("正在打豆豆") # 构造方法,初始化方法 def __init__(self, age, gender): # 在初始化方法中给对象添加属性 self.age = age self.gender = gender # 定义方法 def eat(self): print(f"{self.name}吃月饼") print(self) # 魔方方法,类似java中的toString()方法 def __str__(self): return f"{self.name}, {self.age}, {self.gender}" # 实例化对象 person = Person(11, "男") person2 = Person(22, "女") # print(person) print(person2) # 调用属性【类属性】 # print(person.name) # print(Person.name) # 修改类属性的值 # person.name = "李四" # 注意:该种方式不能修改类属性的值 # Person.name = "李四" # print(person.name) # print(Person.name) # 调用函数 # person.eat() # person2.eat() # 添加对象属性 # 01.类外面添加:该属性只能被当前对象使用 # person.age=22 # print(person.age) # print(person2.age) # person.eat() #调用不来 # print(person.__cardPass) # print(person2.__cardPass) # person.setCardPass("123456") # print(person.getCardPass()) # 调用类方法 # Person.sleep() # person.sleep() # 调用静态方法 # Person.playDD() # person.playDD()
""" 继承 """ # 定义父类 class Father(object): money = 2222.22 def cook(self): print("会炒菜") def eat(self): print("会吃") class Mother(object): money = 22222.22 def cook(self): print("会煮面条") def playMJ(self): print("打麻将") class Son(Mother, Father): money = 22.22 def cook(self): # 调用父类的cook方法 # 01 # Father.cook(self) # Mother.cook(self) # 02 super().cook() print("煮泡面") son = Son() print(son.money) son.cook() # son.eat() # son.playMJ() # 查看类的继承关系 # print(Son.__mro__)
""" 多态 水: 气体: 液体: 固体: """ class Water(object): def use(self): pass class Gas(Water): def use(self): print("这是气体的水,可以用来蒸饺子") class Liquid(Water): def use(self): print("这是液体的水,可以用来煮饺子") class Solid(Water): def use(self): print("这是固体的水,可以用来冻饺子") class Person(object): def cook(self, water): water.use() person = Person() gas = Gas() liquid = Liquid() solid = Solid() person.cook(solid)
各位朋友,本楼主是学java的,也只是1至2年的小白,但学习能力还是挺强的,已经在工作,而且工作之余还在研究python,如有人需要资源,可在博客园评论,我不时会登录看看,或更新一些东西,如果看到需要资源的评论,我会和你私聊发送资源,谢谢各位咯