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

相关推荐
麻衣带我去上学4 小时前
Spring源码学习(一):Spring初始化入口
java·学习·spring
black0moonlight4 小时前
ISAAC Gym 7. 使用箭头进行数据可视化
开发语言·python
maknul4 小时前
【学习笔记】AD智能PDF导出(装配文件)
笔记·学习·pdf
程序员黄同学5 小时前
Python 中如何创建多行字符串?
前端·python
坊钰5 小时前
【Java 数据结构】时间和空间复杂度
java·开发语言·数据结构·学习·算法
pq113_65 小时前
ftdi_sio应用学习笔记 4 - I2C
笔记·学习·linux驱动·ftdi_sio
一点一木5 小时前
AI与数据集:从零基础到全面应用的深度解析(超详细教程)
人工智能·python·tensorflow
A.sir啊5 小时前
Python知识点精汇:集合篇精解!
python·pycharm
周某人姓周6 小时前
利用爬虫爬取网页小说
爬虫·python
花生糖@6 小时前
OpenCV图像基础处理:通道分离与灰度转换
人工智能·python·opencv·计算机视觉