从零开始的python学习生活2

接上封装

python 复制代码
class Phone:
    __volt=0.5

    def __keepsinglecore(self):
        print("让cpu以单核运行")

    def if5G(self):
        if self.__volt>=1:
            print("5G通话已开启")
        else:
            self.__keepsinglecore()
            print("电量不足,无法使用5G通话,已经设置为单核运行来省电")

phone=Phone()
phone.if5G()

私有的成员变量和方法我们外部是无法使用的,但是内部的其他成员方法是可以使用的

练习题

python 复制代码
class Phone:
    __is_5g_enable=False

    def __check_5g(self):
        if self.__is_5g_enable==True:
            print("5g开启")
        else:
            print("5g关闭,使用4g网络")

    def call_by_5g(self):
        self.__check_5g()
        print("正在通话中")

phone=Phone()
phone.call_by_5g()

继承


我们虽然新开发了面部识别功能,但是我们还是会继承之前已经有的功能

python 复制代码
class Phone:
    id=None
    producer="可是雪"

    def call_by_4g(self):
        print("4g通话")


class Phone2024(Phone):
    face_id="10001"

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



phone=Phone2024()
phone.call_by_5g()
phone.call_by_4g()
print(phone.producer)

继承的类的方法和变量都可以用

下面代码里面说了pass

我们这个类已经继承了很多类了,不需要再添加别的东西了,所以我们就可以直接写一个pass

python 复制代码
class Phone:
    id=None
    producer="可是雪"

    def call_by_4g(self):
        print("4g通话")


class Phone2024(Phone):
    face_id="10001"

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



phone=Phone2024()
phone.call_by_5g()
phone.call_by_4g()
print(phone.producer)

class NFC:
    nfc_type="第五代"
    producer="可是雪"

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

class RemoteControl:
    rc_type="红外遥控"
    def control(self):
        print("红外遥控开启了")

class MyPhone(Phone2024,NFC,RemoteControl):
    pass
phone=MyPhone()
phone.call_by_4g()
phone.call_by_5g()
phone.read_card()
phone.write_card()
phone.control()

这里面能很清楚的看见,我们直接继承了Phone2024的,但是我们依旧可以使用phone里面的功能,也就是继承具有连续性

假如里面有多个属性,比如调用producer,class Phone里面也有,类NFC里面也有,此时谁比较靠左边就是谁

复写父类

我继承过来的属性和方法我都不满意,我就直接改

python 复制代码
class Phone:
    id=None
    producer="可是雪"

    def call_by_5g(self):
        print("5g通话")

class MyPhone(Phone):
    producer = "不是雪"
    def call_by_5g(self):
        print("开启单核模式,确保省电")
        print("使用5g网络进行通话")
        print("关闭单核模式,确保性能")

phone=MyPhone()
phone.call_by_5g()
print(phone.producer)

子类把父类覆盖掉

下面:

假如我已经把父类里面的东西复写掉了,但是我还想用父类的某些变量和方法,那么我可以使用下面两种方法

python 复制代码
class Phone:
    id=None
    producer="可是雪"

    def call_by_5g(self):
        print("5g通话")

class MyPhone(Phone):
    producer = "不是雪"
    def call_by_5g(self):
        print("开启单核模式,确保省电")
        # print("使用5g网络进行通话")
        
        # 方式一
        print(f"父类的厂商是{Phone.producer}")
        Phone.call_by_5g(self)
        # 方式二
        print(f"父类的厂商是{super().producer}")
        super().call_by_5g()
        
        print("关闭单核模式,确保性能")

phone=MyPhone()
phone.call_by_5g()
print(phone.producer)

应该比较喜欢super方法,方法一忘记传self还会报错

变量的类型注解





python 复制代码
import json
import random

var_1:int=10
var_2:str="hello"
var_3:bool=True
class Student:
    pass
stu:Student=Student()

my_list:list[int]=[1,2,3,4]
my_tuple:tuple[int,str,bool]=(1,"itheima",True)
my_set:set[str,int]={"hahaha",4}
my_dict:dict={"a":1,"b":2}

var_1=random.randint(1,10) #type:int
var_2=json.loads({"name":"zhangsan"})  #type:dict[str,str]

没逝,我以后大概率不干这行,这种备注感觉不进公司没啥用

函数和方法类型注解


python 复制代码
# 对形参进行类型注解
def add(x:int, y:int):
    return x + y
# 对返回值进行类型注解
def func(data:list) ->list:
    return data

print(func(1))
print(add(1,2))

Union联合类型注解

不是一一对应,只需要把后面出现的类型都列举出来就行

多态


python 复制代码
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()
# 不用注解
# def make_noise(Animal):
#     animal = Animal()
#     animal.speak()
dag=Dog()
cat=Cat()
make_noise(cat)
make_noise(dag)



python 复制代码
class AC:
    def cool_wind(self):
        # 制冷
        pass
    def hot_wind(self):
        # 制热
        pass
    def swing_l_r(self):
        # 左右摆风
        pass

class meidi(AC):
    def cool_wind(self):
        print("美的空调制冷")
    def hot_wind(self):
        print("美的空调制热")
    def swing_l_r(self):
        print("美的空调左右摆风")

class geli(AC):
    def cool_wind(self):
        print("格力空调制冷")
    def hot_wind(self):
        print("格力空调制热")
    def swing_l_r(self):
        print("格力空调左右摆风")

meidi = meidi()
meidi.cool_wind()
geli = geli()
geli.cool_wind()

类似于我给一个猜想,但是让其他人去做

数据分析综合案例

我有畏难心理,我先害怕了

果然,都明白但是自己就是不会敲,占个位

明儿在写

SQL

相关推荐
Rock_yzh2 小时前
AI学习日记——参数的初始化
人工智能·python·深度学习·学习·机器学习
青衫客363 小时前
基于 Python 构建的安全 gRPC 服务——TLS、mTLS 与 Casbin 授权实战
python·安全·微服务
-dzk-4 小时前
【3DGS复现】Autodl服务器复现3DGS《简单快速》《一次成功》《新手练习复现必备》
运维·服务器·python·计算机视觉·3d·三维重建·三维
今天只学一颗糖5 小时前
Linux学习笔记--insmod 命令
linux·笔记·学习
charlie1145141915 小时前
精读C++20设计模式:行为型设计模式:中介者模式
c++·学习·设计模式·c++20·中介者模式
楼田莉子5 小时前
Qt开发学习——QtCreator深度介绍/程序运行/开发规范/对象树
开发语言·前端·c++·qt·学习
摩羯座-185690305945 小时前
爬坑 10 年!京东店铺全量商品接口实战开发:从分页优化、SKU 关联到数据完整性闭环
linux·网络·数据库·windows·爬虫·python
ACERT3335 小时前
5.吴恩达机器学习—神经网络的基本使用
人工智能·python·神经网络·机器学习
Le1Yu6 小时前
2025-10-7学习笔记
java·笔记·学习
im_AMBER6 小时前
Web 开发 21
前端·学习