Python学习笔记(二十)面向对象 - 其他

Python学习笔记(二十)面向对象 - 其他

一、面向对象三大特性

在这里插入图片描述
注意 :以上三个特性会出现在面试,需要熟记


二、多态

2.1 了解多态

在这里插入图片描述

2.2 体验多态
class Dog(object):
    def work(self):
        print('指哪打哪')

class ArmyDog(Dog):
    def work(self):
        print('追击敌人')

class DrugDog(Dog):
    def work(self):
        print('追查毒品')

class Person(object):
    def work_with_dog(self,dog): # 传入不同的对象,执行不同的代码
        dog.work()

ad = ArmyDog()
dd = DrugDog()

daqiu = Person()
daqiu.work_with_dog(ad)  # 追击敌人
daqiu.work_with_dog(dd)  # 追查毒品

三、类属性和实例属性

3.1 类属性

3.1.1 设置和访问属性

  • 类属性就是 类对象 所拥有的属性, 它被 该类的所有实例对象 所共有。
  • 类属性 可以使用 类对象 或者 实例对象 访问。
# 定义类
class Dog(object):
    teeth = 10

# 创建对象
wangcai = Dog()
xiaohei = Dog()

# 访问类属性:通过 类 和 对象 两种方法
print(Dog.teeth)  # 10
print(wangcai.teeth)  # 10
print(xiaohei.teeth)  #10

在这里插入图片描述3.1.2 修改类对象
类属性只能通过类对象修改,不能通过实例对象修改,如果通过实例对象修改类属性,表示的是创建了一个实例属性

class Dog():
    teeth = 10

wangcai = Dog()
xiaohei = Dog()

# 1. 通过类修改 : 类名.属性 = 值
Dog.teeth = 20
print(Dog.teeth)  # 20
print(wangcai.teeth) # 20

# 2. 通过实例对象修改 : 对象名.属性 = 值
wangcai.teeth = 30
print(Dog.teeth)  # 20
print(wangcai.teeth) # 30
print(xiaohei.teeth) # 20


四、类方法和静态方法

4.1 类方法

4.1.1 类方法特点
在这里插入图片描述

4.1.2 类方法使用场景

  • 当方法中 需要使用类对象 如访问私有属性等,定义类方法。
  • 类方法一般和类属性配合使用。
# 定义类:私有类属性,类方法获取这个私有类属性
class Dog(object):
    # 私有类属性
    __teeth = 10

    # 类方法
    @classmethod
    def get_teeth(cls):
        return cls.__teeth

# 创建对象
wangcai = Dog()
# 调用类方法
result = wangcai.get_teeth()
print(result)  # 10
4.2 静态方法

4.2.1 静态方法特点
在这里插入图片描述
4.2.2 静态方法使用场景
在这里插入图片描述

# 1. 定义类,类里面定义静态方法
class Dog(object):
    @staticmethod
    def info_print():
        print('这是一个静态方法')

# 2. 创建对象
wangcai = Dog()

# 3. 调用静态方法: 类 和 对象
Dog.info_print()  # 这是一个静态方法

wangcai.info_print()  # 这是一个静态方法

五、总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值