Python第四次笔记 对象 封装继承多态

简介: Python第四次笔记 对象 封装继承多态

初试对象

定义一个类

class Student:
    name = None
    gender = None
    nationality = None

创建一个对象

stu_01 = Student()

对对象进行赋值操作

stu_01.name =  "lhk"
stu_01.gender = "nan"
stu_01.nationality = "China"

类的成员方法

定义一个类,成员方法中使用成员变量的时候,需要使用self打点调用

class Student:

    name = None
    age = None

    def say_hi(self):
        print(f"Hello ,大家好,我是{self.name}")

    def say_hi2(self,message):
        print(f"大家好我的名字是{self.name},{message}")
stu_01 = Student()
stu_01.name = "李慧慷"
stu_01.say_hi()
stu_01.say_hi2("哎哟不错呦")

构造方法

    def 5__init__(self,name,age,tel):
        self.name = name
        self.age = age
        self.tel = tel
        print("Student类创造了一个对象")

写构造方法的时候,class里面的成员变量可以不用写的

class Student:
    name = None
    gender = None
    nationality = None

stu_01 = Student()

stu_01.name =  "lhk"
stu_01.gender = "nan"
stu_01.nationality = "China"

print(stu_01.name + stu_01.gender + stu_01.nationality)

内置方法

内置方法,也就是说魔术方法,这些方法不可以直拿来用,必须在class里面进行修改


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

    # str魔术方法
    def __str__(self):
        return f"Student类对象,name:{self.name},age:{self.age}"

    # __lt__魔术方法 < / > 判断
    def __lt__(self, other):
        return self.age < other.age

    # __le__魔术方法 < / > 判断
    def __le__(self, other):
        return self.age <= other.age
    # eq
    def __eq__(self, other):
        return self.age == other.age

stu1 = Student("周杰伦",31)
print(stu1)
print(str(str(stu1)))

stu2 = Student("林俊杰",36)
print(stu1 < stu2)
print(stu1 <= stu2)
print(stu1 == stu2)

封装

封装就是外面是不可以访问的,只能够内部进行访问,
5g

class Phone:

    __current_voltage = 0

    def __keep_singer_core(self):
        print("让CPU以单核模式进行运行")

    def call_by_5g(self):
        if self.__current_voltage >= 1:
            print("5g通话已经开启")
        else:
            self.__keep_singer_core()
            print("电量不足,无法使用5g通话,并且已经设置为单核模式")

phone = Phone()

phone.call_by_5g()

继承

# 演示单继承
class phone:
    IMEI = None
    producer  ="ITCAST"
    def call_by_4g(self):
        print("4g通话")

class phone2022(phone):

    def call_by_5g(self):
        print("2022年新功能:5g通话")

phone2022 = phone2022()
phone2022.call_by_4g()


# 演示多继承
class NFCReader:
    nfc_type = "第五代"
    producer = "HM"

    def read_card(self):
        print("NFC读卡")
    def write_card(self):
        print("NFC写卡")

class RemoteControl:
    rc_type = "红外遥控"

    def control(self):
        print("红外遥控开启了")

class MyPhone(phone,NFCReader,RemoteControl):
    pass

myPhone = MyPhone()
print(myPhone.producer)
myPhone.call_by_4g()
myPhone.read_card()
myPhone.write_card()
myPhone.control()

复写父类

子类直接重写父类方法就行的

class Phone:
    IMEI = None
    producer  ="ITCAST"

    def call_by_5g(self):
        print("使用5g网络进行通话")

class MyPhone(Phone):
    producer = "ITHEIMA"
    def call_by_5g(self):
        # 方式一
        print(f"父类的厂商是{Phone.producer}")
        Phone.call_by_5g(self)
        # 方式二
        print(f"父类的厂商是{super().producer}")
        super().call_by_5g()
        
        print("子类中的5g操作")

MyPhone =  MyPhone()
MyPhone.call_by_5g()

多态

# 抽象类
class Animal:
    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        print("汪汪汪")

class Cat(Animal):
    def speak(self):
        print("喵喵喵")

def make_noise(animal:Animal):
    animal.speak()

dog = Dog()
cat = Cat()

make_noise(dog)
make_noise(cat)

多态抽象类

class AC:
    def cool_wind(self):
        pass
    def hot_wind(self):
        pass
    def swing_l_r(self):
        pass

class Midea_AC(AC):
    def cool_wind(self):
        print("美的空调核心制冷科技")
    def hot_wind(self):
        print("美的空调电热丝加热")
    def swing_l_r(self):
        print("美的空调无风感左右摇摆")


class GREE_AC(AC):
    def cool_wind(self):
        print("格力空调变频省电制冷")

    def hot_wind(self):
        print("格力空调电热丝加热")

    def swing_l_r(self):
        print("格力空调无风感左右摇摆")

def make_cool(ac:AC):
    ac.cool_wind()

midea_ac = Midea_AC()
gree_ac = GREE_AC

make_cool(midea_ac)
make_cool(gree_ac)
相关文章
|
8月前
|
编解码 数据安全/隐私保护 Python
抖音批量发布视频工具,自动上传视频作品笔记,python发布软件
这个抖音批量发布工具包含三个主要模块:主上传程序、配置文件和视频预处理工具。主程序
|
6月前
|
安全 大数据 程序员
Python operator模块的methodcaller:一行代码搞定对象方法调用的黑科技
`operator.methodcaller`是Python中处理对象方法调用的高效工具,替代冗长Lambda,提升代码可读性与性能。适用于数据过滤、排序、转换等场景,支持参数传递与链式调用,是函数式编程的隐藏利器。
209 4
|
7月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1281 1
|
7月前
|
安全 JavaScript Java
Python中None与NoneType的真相:从单例对象到类型系统的深度解析
本文通过10个真实场景,深入解析Python中表示“空值”的None与NoneType。从单例模式、函数返回值,到类型注解、性能优化,全面揭示None在语言设计与实际编程中的核心作用,帮助开发者正确高效地处理“无值”状态,写出更健壮、清晰的Python代码。
702 3
|
7月前
|
Python
解决Python中AttributeError:'image'对象缺少属性'read_file'的问题策略。
通过上述策略综合考虑,您将能够定位问题并确定如何解决它。记住,Python社区很庞大,也很乐于帮助解决问题,因此不要害怕在求助时提供尽可能多的上下文和您已经尝试过的解决方案。
196 0
|
8月前
|
API 数据安全/隐私保护 Python
小红书批量发布协议, 抖音自动批量发布软件脚本,笔记作品视频自动发布工具【python】
这个工具框架包含了小红书和抖音的批量发布功能,支持图片和视频处理、定时发布等功能
|
8月前
|
Web App开发 数据安全/隐私保护 Python
抖音快手小红书哔哩哔哩,批量发布作品笔记视频工具,自动发布作品上传笔记视频【python】
这个工具实现了四大平台的视频批量上传功能,包含完整的异常处理和日志记录。使用时需要配置
|
8月前
|
存储 JSON API
小红书批量发布笔记工具,小红书批量上传软件,python框架分享
这个框架包含了配置文件、工具函数、API封装和主程序四个模块。使用时需要先配置账号信息,
|
10月前
|
人工智能 Ruby Python
python__init__方法笔记
本文总结了Python中`__init__`方法的使用要点,包括子类对父类构造方法的调用规则。当子类未重写`__init__`时,实例化会自动调用父类的构造方法;若重写,则需通过`super()`或直接调用父类名称来显式继承父类初始化逻辑。文中通过具体代码示例展示了不同场景下的行为及输出结果,帮助理解类属性与成员变量的关系,以及如何正确使用`super()`实现构造方法的继承。
484 9
|
11月前
|
数据采集 JSON API
Python 实战:用 API 接口批量抓取小红书笔记评论,解锁数据采集新姿势
小红书作为社交电商的重要平台,其笔记评论蕴含丰富市场洞察与用户反馈。本文介绍的小红书笔记评论API,可获取指定笔记的评论详情(如内容、点赞数等),支持分页与身份认证。开发者可通过HTTP请求提取数据,以JSON格式返回。附Python调用示例代码,帮助快速上手分析用户互动数据,优化品牌策略与用户体验。
1942 3

推荐镜像

更多