1.属性

1.类属性:

每个实例都有相同的属性,如轮胎个数等。

2.实例属性:

每个实例独有的属性。汽车颜色发动机编号等。

2.1实例属性的创建

实例属性通常是在类的初始化方法中定义,__init__里定义两个下划线_ _init_ _

初始化方法:

def   __init__(self,color,pai):   #self 代表类的实例化对象
    self.color=color
    self.engineSN=pai
#调用
car1=BenzCar('green','sn2346666')    #参数给__init__()

*对象可以访问类属性和实例属性,但是类不能访问实例属性。

2.方法

1.@staticmethod:静态方法,每个对象都有的方法。

2.自己定义实例化方法:

实例化方法的第一个参数始终是self,需要调用才可以使用。

调用方法:

对象名.方法名

实例方法意味着访问实例属性。如果定义静态方法不会访问实例属性。

*类的静态方法不能访问实例属性。

3.类之间的关系

3.1继承关系:

被继承的类叫父类,基类

继承的类叫子类,派生类

class  子类名(父类名):
    属性

定义的子类会自动拥有父类的所有属性和方法(私有成员除外)。

3.2初始化方法

初始化方法:

实例化对象的时候调用的时候调用的是子类的构造方法。

*所以子类的初始化方法一定要调用父类的初始化方法。

def  __init__(self,color,engineSN,weight):
    #先调用父类的构造方法
    父类名.__init__(self,color,engineSN)   #或super().__init__(color,engineSN)
    self.weight=weight
    self.oilweight=0

3.3类的组合关系

这个类中的属性是另一个类的对象。

列表推导式:

class Tire:
    def __init__(self,size,createDate):
        self.size=size
        self.createDate=createDate
class BenzCar:
    brand='奔驰'
    country='德国'
    def __init__(self,color,engineSN,tires):
        self.color=color
        self.engineSN=engineSN
        self.tires=tires
#创建四个轮胎对象
tires=[Tire(20,'20230606') for i in range(4)]
car=BenzCar('red','23456879',tires)