class name() :
def method(self) : //类内的方法第一个参数必须是self
....
对象 = name()
对象.属性 = ... //可以直接在类外赋值,就自动在类内定义了
对象.method()
初始化函数(构造函数):def __init__(self, 属性值 ...)
魔法函数: 类中被双下划线前后包围的方法,在某一特定操作时会被自动调用
e.g. :
def __init__(self, ....)
def __call__(self, ....) : 让对象像函数一样可以调用
属性定义:
类属性定义在class后,init前
实例属性在init中定义,如果init没有初始化属性,那实例属性就和类属性一样
修改实例属性不会影响类属性。
私有属性:_ _name = value //不能在类外调用
方法定义:
实例方法就是普通def定义的方法,至少包含一个self参数
类方法:至少包含一个cls参数。是类对象拥有的方法,用@classmethod修饰。可以用对象和类调用。
静态方法:存放逻辑类的代码,只是名义上写在类里面,但是和类本身没有关系。用@staticmethod修饰
继承:
子类在定义的时候,小括号内写父类名字。
不继承父类私有方法和属性,且不能访问。
多继承:继承多个父类,如果多个父类中有重名的方法,就调用先继承的父类方法
重写:子类和父类重名的方法/属性,会覆盖父类的
super().父类方法 super().__init__()
抽象方法:import abc @abc.abstractmethod 用于要求子类重写的函数必须具有某一变量
封装:
用类内公有方法调用私有方法/变量
类型注解:
ctrl + p能看到传参的类型
1.变量:类型 = 值
2.
3.联合类型注解
Union
先导包 from typing import Union
list[Union[类型1,类型2。。。]]