Python函数

1、构造方法得名称为__init__
2、构造方法的作用:

  • 构建类对象的时候会自动运行
  • 构建按类对象的传参会传递给构造方法,借此特征可以给成员变量赋值

3、注意事项:构造方法不要忘记self关键字,在方法内使用成员变量需要使用self函数

class Student:
    name = None
    gender = None
    age = None

    def __init__(self, name, gender, age):
        self.name = name
        self.age = age
        self.gender = gender
        print("创建成功")


stu = Student("周杰伦", 2, 22)

python类中的魔术方法

class Student:
    name = None
    age = None

    def __init__(self, name, age):
        self.name = name
        self.age = age
        print("创建成功")

    # 类似于java的tostring方法,这样print(stu)输出时不会输出student的地址,而是输出内容
    def __str__(self):
        return f"Student对象中{self.name},{self.age}"

    # 大于或者小于的判断
    def __lt__(self, other):
        print("1")
        return self.age < other.age

    # 小于等于判断
    def __le__(self, other):
        print("2")
        return self.age <= other.age

    # 等于判断
    def __eq__(self, other):
        print("3")
        return self.age == other.age


stu1 = Student("周杰伦", 2)
stu2 = Student("林俊杰", 18)

print(stu1 < stu2)

1、继承
语法:class 类名(父类1,父类2、、、)
子类构建类的对象可以,有自己的成员变量和成员方法
使用父类的成员变量和成员方法。
2、单继承和多继承

  • 单继承:一个类继承另一个类
  • 多继承:一个类继承多个类,按照顺序从左向右依次继承;多继承中如果父类有同名的方法或者属性,先继承的优先级高于后继承。

3、pass关键字的作用:保证程序不出错,保持类的完整性,表示无内容,空的意思


复写父类中的成员和方法

在子类中如何调用父类成员

  • 方式一:调用父类成员
  • 调用成员变量:父类名.成员变量
  • 使用成员方法:父类名.成员方法(self)

  • 方式二:使用super()调用父类成员
  • 使用成员变量:super().成员变量
  • 使用成员方法:super().成员方法()
class Phone:
    id = None
    producer = "itcast"

    def call(self):
        print("5g")


class Myphone(Phone):
    producer = "iphone"

    def call(self):
        Phone.call(self)
        super().call()
        print("6g")


a = Myphone()
print(a.producer)
a.call()


变量的类型注解

# 基础数据类型注解
import json
import random

var1: int = 10
var2: str = "hello"
var3: bool = True


# 类对象类型注解
class Student:
    pass


stu: Student = Student()

# 基础容器类型注解
my_list: list = [1, 2, 3]
my_tuple: tuple = (1, 2, 3)
my_dict: dict = {"itheima": 666}

# 容器类型详细注解
var4 = random.randint(1, 10)  # type:int
var5 = json.loads('{"name":"zhangsan"}')  # type:dict[str,str]


函数和方法类型注解

# 对形参类型进行注解
def add(x: int, y: int):
    return x + y


# 对返回值进行类型注解
def func(data: list) -> list:
    return data


print(func(1))

Union联合类型注解

# Union联合类型注解

from typing import Union

my_list: list[Union[int, str]] = [1, 2, "itheima", "dasdasd"]


def func(data: Union[int, str]) -> Union[int, str]:
    pass


func()

多态

  • 多态指的是,同一个行为,使用不同的对象获得不同的状态。如,定义函数(方法),通过类型注解声明需要父类对象,实际传入子类对象进行工作,从而获得不同的工作状态;
  • 抽象类:包含抽象方法的类,称之为抽象类。抽象方法指的是:没有具体实现的方法(pass)称之为抽象方法;
  • 抽象类的作用:用作与顶层设计,以便于子类做具体实现。也是对子类的一种软性约束,要求子类必须复写(实现)父类的一些方法。
# 多态

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("格力摆风")


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


meidi = MeiDi()
geli = GeLi()

make_cool(meidi)
make_cool(geli)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值