🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 有参数的\_\_init\_\_()方法 ~~~ class Car(object): """定义了一个车类,可以启动和炸街""" def __init__(self, name, max_speed, vehicle_length): """ __init__() 方法,用来做变量初始化 或 赋值 操作""" self.name = name # 车名 self.max_speed = max_speed # 最高时速 self.vehicle_length = vehicle_length # 车长 def start(self): """实例方法""" print("正在启动") def fried_street(self): """实例方法""" print("开始炸街") def info(self): """在类的实例方法中,通过self获取该对象的属性""" print("本车名为:{} 最高时速:{} km/h".format(self.name, self.max_speed)) print("本车名为:{} 车长:{} mm".format(self.name, self.vehicle_length)) # 实例化保时捷911对象时,参数会传递到对象的__init__()方法里 porsche_911 = Car('保时捷911', 340, 4519) jeep = Car('牧马人', 200, 5000) # print(porsche_911) # print(jeep) # 不同对象的属性值的单独保存 print(id(porsche_911.name)) print(id(jeep.name)) # 同一个类的不同对象,实例方法共享 print(id(porsche_911.start())) print(id(jeep.start())) ~~~ #### 说明: * 通过一个类,可以创建多个对象,就好比 通过一个模具创建多个实体一样 * `__init__(self)`中,默认有1个参数名字为self,如果在创建对象时传递了2个实参,那么`__init__(self)`中出了self作为第一个形参外还需要2个形参,例如`__init__(self,x,y)` #### 注意: 1. 在类内部获取 属性 和 实例方法,通过self获取; 2. 在类外部获取 属性 和 实例方法,通过对象名获取。 3. 如果一个类有多个对象,每个对象的属性是各自保存的,都有各自独立的地址; 4. 但是实例方法是所有对象共享的,只占用一份内存空间。类会通过self来判断是哪个对象调用了实例方法。