公司做网站好,seo关键词快速排名介绍,php网站的特点,制作app的教程1、类的基础介绍
类对象#xff1a;定义的类就是类对象
类属性#xff1a;定义在__init__ 外部的变量
类方法#xff1a;定义在类中#xff0c;且被classmethod 装饰的方法
实例对象#xff1a;类对象实例化后就是实例对象
实例属性#xff1a;定义在__init__内部带…1、类的基础介绍
类对象定义的类就是类对象
类属性定义在__init__ 外部的变量
类方法定义在类中且被classmethod 装饰的方法
实例对象类对象实例化后就是实例对象
实例属性定义在__init__内部带有self.的变量
实例方法定义在类对象中且未被classmethod装饰的方法就是实例方法
静态方法定义在类中且被staticmethod 装饰的方法
直观的解释见下图 2、实例化方法
class ExampleClass:class_variable 10print(类属性, class_variable)def class_method(cls, x):y cls.class_variable xreturn yexampleclass ExampleClass() #实例化
y exampleclass.class_method(100)
print(y)
实例方法可以调用类属性和类方法。
实例对象可以访问类属性、类方法、实例属性、实例方法
3、staticmethod静态方法 静态方法不接收类的实例self或类cls作为第一个参数不需要对类实例化可以直接类名.方法名()被调用但不能访问类属性或实例属性不能访问实例属性和调用实例方法
class Func:staticmethoddef add(x, y):return x y# 使用静态方法
result Func.add(3, 4)
34、 classmethod用法 无需实例化可以被直接调用但是需要接受cls作为第一个参数传入。一旦实例方法前面被加了classmethod该实例方法的级别就从二级跃升到一级与类是一个级别。假设类是一级类下面的实例方法是二级。 类方法不能调用实例属性和实例方法
class Vehicle:def __init__(self, vehicle_type):self.vehicle_type vehicle_typeprint(初始化实例属性,self.vehicle_type)classmethoddef car(cls):print(类方法)return cls(10).test(100)def test(self, x):print(实例化方法:, self.vehicle_type x)print(Vehicle.car()) 输出
类方法
初始化实例属性 10
实例化方法: 110
代码的执行流程如下
Vehicle.car()类对象调用类方法。cls(10)其中cls代指类对象Vehicle因此cls(10)代表Vehicle(10)相当于对Vehicle类进行了实例化。__init__执行类实例化cls(10)时程序会对实例化属性进行初始化self.vehicle_type vehicle_type此时self.vehicle_type10。.test(100)实例化对象cls(10)调用实例化方法test(100)此时会执行实例化方法test()中的内容。