从零开始的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

相关推荐
万千思绪8 分钟前
【PyCharm 2025.1.2配置debug】
ide·python·pycharm
Chef_Chen37 分钟前
从0开始学习计算机视觉--Day07--神经网络
神经网络·学习·计算机视觉
微风粼粼2 小时前
程序员在线接单
java·jvm·后端·python·eclipse·tomcat·dubbo
云天徽上2 小时前
【PaddleOCR】OCR表格识别数据集介绍,包含PubTabNet、好未来表格识别、WTW中文场景表格等数据,持续更新中......
python·ocr·文字识别·表格识别·paddleocr·pp-ocrv5
你怎么知道我是队长2 小时前
python-input内置函数
开发语言·python
X_StarX2 小时前
【Unity笔记02】订阅事件-自动开门
笔记·学习·unity·游戏引擎·游戏开发·大学生
叹一曲当时只道是寻常2 小时前
Python实现优雅的目录结构打印工具
python
MingYue_SSS3 小时前
开关电源抄板学习
经验分享·笔记·嵌入式硬件·学习
weixin_437398213 小时前
转Go学习笔记(2)进阶
服务器·笔记·后端·学习·架构·golang
hbwhmama3 小时前
python高级变量XIII
python