Python面向对象(三)

Python面向对象(三)

1.property装饰器

  • 在类中使用,将类中的方法伪装成一个属性

  • 函数的嵌套、 内部函数需要使用到外部函数的变量、 外部函数返回内部函数的函数对象

class Student:
    def __init__(self, name):
        self.__name = name

    @property
    def name(self):
        return self.__name

    @name.setter  # 设置,修改(自我理解)
    def name(self, new_name):
        if type(new_name) is str:  # 只有当修改的值为str类型,才能被修改
            self.__name = new_name


a1 = Student("诸葛")
print(a1.name)  # 诸葛
a1.name = "大力"
print(a1.name)  # 大力
a1.name = 123
print(a1.name)  # 大力

2.多态

就相当于是一个类,它有多种表现得形态,动物类:有人,猪,狗

class Animal:
    def run(self):  # 子类约定俗称的必须实现这个方法
        pass


class People(Animal):
    def run(self):
        print('人正在走')


class Pig(Animal):
    def run(self):
        print('pig is walking')


class Dog(Animal):
    def run(self):
        print('dog is running')


peo1 = People()
pig1 = Pig()
d1 = Dog()

peo1.run()
pig1.run()
d1.run()

3.继承

  • 封装:根据职责将属性和方法封装到一个抽象的类中

  • 继承:实现代买的重用 相同的代码不需要重复的写

  • 继承具有传递性

    • 当父类方法不能满足子类的需求的时候

    • 可以对方法进行重写
      1.覆盖父类方法
      2.对父类的方法进行扩展

class Animal:

    def eat(self):
        print('吃。。。')

    def sleep(self):
        print('睡觉')


class Dog(Animal):

    def bark(self):
        print('汪汪汪')


class Cat(Animal):

    def climb_tree(self):
        print('爬树。。')


dog = Dog()
dog.eat()
dog.sleep()
dog.bark()
cat = Cat()
cat.eat()
cat.sleep()
cat.climb_tree()

输出结果:

吃。。。
睡觉
汪汪汪
吃。。。
睡觉
爬树。。

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值