子类继承父类的成员属性和成员方法后,如果对其“不满意”,那么可以进行复写。
即:在子类中重新定义同名的属性或方法即可。
一旦复写父类成员,那么类对象调用成员的时候,就会调用复写后的新成员如果需要使用被复写的父类的成员,需要特殊的调用方式:
import部分见Python基础(二十六、封装、继承)
import siyou
from sound import clock
class PhoneUp(siyou.Phone, clock.Clock):
def __init__(self, IMEI, sound, id, price, face_id):
super().__init__(IMEI, sound)
super().__init__(id, price)
# 面部识别
self.face_id = face_id
# 复写
def ca11_by_5g(self):
if self.face_id != None:
print("已为您开启5g,自适应环境调整降噪模式")
else:
# 使用父类的成员方法
super().ca11_by_5g()
def face(self):
if self.face_id != None:
print("面部识别设置成功")
if __name__ == "__main__":
phone = PhoneUp(1102, 2, 1111,122,None)
phone = PhoneUp(1102, 2, 1111,122,11)
phone.ca11_by_5g()
phone.face()
phone.ring()
变量注解用于指定变量的类型信息,通常位于变量名后面,使用冒号分隔。例如:
x: int = 42
y = 42 # type: int
这条语句表示将整数值42赋给变量x,并且将x标注为int类型。
变量注解的作用:
函数注解用于指定函数参数和返回值的类型信息,通常位于函数定义的括号和冒号之间,或者是在箭头后面指定返回类型。例如:
def add(x: int, y: int) -> int:
return x + y
def add(x, y):
# type: (int, int) -> int
return x + y
这个函数的参数x和y被标注为int类型,返回值被标注为int类型。
函数注解的作用:
需要注意的是,Python的类型注解只是一种约定,不会在程序执行时强制执行类型检查。因此,在使用类型注解时,仍然需要编写相应的代码来确保变量和函数的正确类型使用。
在Python中,使用Union进行联合注解可以指定一个变量或函数参数可以接受多种类型的值。Union是typing模块中的一个工具类,用于创建复合类型。
from typing import Union
var: Union[type1, type2, ...]
其中,type1、type2等表示可以接受的类型。
from typing import Union
def add(a: Union[int, float], b: Union[int, float]) -> Union[int, float]:
return a + b
result1 = add(5, 3)
print(result1) # 输出:8
result2 = add(2.5, 1.5)
print(result2) # 输出:4.0
在上面的例子中,add函数的参数a和b都被注解为Union[int, float],表示可以接受整数或浮点数类型的值。返回值也被注解为Union[int, float],表示返回的结果可以是整数或浮点数类型。