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)