2022年12月python面向对象(二)

1、类属性
作用:用于多个对象之间的数据共享

class Person:
    num = 0

son_01 = Person()
son_02 = Person()
print(son_01.num)
print(son_02.num)

在这里插入图片描述
与实例属性的区别为:

class Person:
    def __init__(self, num):
        self.num = num


son_01 = Person(5)
son_02 = Person(6)
print(f'son_01输出的num值为{son_01.num}')
print(f'son_02输出的num值为{son_02.num}')

在这里插入图片描述
类属性和实例属性的区别为:类属性再实例化时无需传入参数,且类属性在各个实例之间数据共享

2、类方法 可以由类发起调用 也可以由实例对象发起调用
作用:用来操作类属性

在这里插入代码片class Person:
    num = 0

    def __init__(self, son_num):
        self.son_num = son_num
        Person.num += 1

    @classmethod
    def print_persons(cls):
        print(f'总数为:{cls.num}')


son_01 = Person(5)
son_02 = Person(5)
Person.print_persons()
son_02.print_persons()

在这里插入图片描述
3、继承:
作用:父类中有子类想要用的方法、属性

class Person:
    def __init__(self, name):
        self.name = name

    def print_info(self):
        print(f'父类中打印的名字为{self.name}')


class Son(Person):
    pass


sun = Son('李四')
sun.print_info()

在这里插入图片描述
定义了一个空的子类,在实例化时,调用了父类的方法

重写父类的属性及方法,以下方法为全部重写,即覆盖了父类中原有同名方法

class Son(Person):
    def __init__(self, name):
        self.name = name

    def print_info(self):
        print(f'子类中打印的名字为{self.name}')
sun = Son('李四')
sun.print_info()

在这里插入图片描述
多态:既有继承,又有重写,即为多态

当父类同名方法有一部分可用时,无需全部重写,只需重写子类自己执行的代码即可,此时,使用super()

class Person:
    def __init__(self, name):
        self.name = name

    def print_info(self):
        print(f'父类中打印的名字为{self.name}')


class Son(Person):

    def print_info(self):
        super().print_info() # 调用父类的方法
        print(f'子类中打印的名字为{self.name}')


sun = Son('李四')
sun.print_info()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值