1.5 python面向对象

面向对象的几个重要概念

面向对象的基本概念

类class:将数据和方法抽象化后的一个集合

方法:抽象类的方法/函数,用于处理类的数据

类变量:定义在类中且不在类方法之内的变量

实例变量:定义在方法中的变量,只作用于当前实例的类

数据成员:实例化的对象具有的变量,包括类变量和实例变量

 面向对象的关键技术

封装、继承和多态。

封装:将数据和函数聚合在一起的技术

继承:从基类派生新类,新类会具有基类的数据和方法

多态:一个类实例的相同方法在不同情形有不同表现形式

抽象:一种忽略实现细节的方式

 python面向对象

类的声明定义

class Factory:
    def __init__(self, name: str):
        self.name = name

    def get_name(self):
        return self.name

类的实例化与操作

# 实例化
factory = Factory("factory")

# 访问类的属性
factory.name

# 调用类的方法
name = factory.get_name()

类的继承

class CarFactory(Factory):
    def produce(self):
        print("produce a car")

car_factory = CarFactory("Tesla")
car_factory.name
car_factory.produce()

抽象

class Animal(meta=abc.ABC):
    @abc.abstractmethod
    def get_name(self):
        pass


class Cat(Animal):
    def get_name(self):
        return "Cat"


cat = Cat()
cat.get_name()

多态

可以借助关键字传参实现

class Animal:
    def __init__(self):
        self.mouth_count = mouth_count
        self.mouth_count = leg_count

    def set_animal(self, mouth_count: int = None, leg_count: int = None):
        if leg_count: self.leg_count = leg_count
        if mouth_count: self.mouth_count = mouth_count


animal = Animal()
animal.set_animal(1)

animal.set_animal(1, 2)

几个内置的属性

__dict__:类的属性

__doc__:类的文档

__name__:类名

__bases__:类的所有父类构成元素

__module__:类定义所在的模块

类变量的保护类型

_foo:protected类型,允许类对象和子类访问

__foo: private类型,只允许类本身访问

__foo__: 特殊定义的方法,例如__init__等

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值