当前位置: 首页 > 图灵资讯 > 行业资讯> python如何将实例用作属性

python如何将实例用作属性

来源:图灵python
时间: 2024-07-16 10:20:06

1、说明

由于模拟对象中的细节越来越多,一种类变得有点复杂。此时,我们可以提取细节作为一种类型,并将其作为子类型属性。

将子类中的电池分开,形成新的类。

2、实例

classCar:
---snip---
#创建子类时,父类文件必须包含在文件中,父类的名称必须包含在圆括号中
#---snip---表示上一代码中父类的基本属性

classBattery:#首先定义了一个新的类别——Battery,他没有继承任何类别。
"""简单尝试模拟电动汽车电池。"""


def__init__(self,battery_size=75):#其中一个形参battery_size,这种形参是可选的,默认为75。但不是默认值,还是可以改变的
"""电池初始化的属性"""
self.battery_size=battery_size


defdescribe_battery_size(self):
"""打印一条描述电池容量的信息"""
print(f"Thiscarhasa{self.battery_size}-kwhbattery")




defget_range(self):
"""打印一条信息,指出电池的续航里程"""
ifself.battery_size==75:
range=260


elifself.battery_size==100:
range=315


print(f"Thiscarcangoabout{range}milesonafullcharge")


#尽管将原来的实例电池作为属性,这有点复杂,但它可以方便我们在整个过程中更详细地描述电池,以免在子类中显得太复杂


classElectric_Car(Car):
"""描述电动汽车"""


def__init__(self,make,model,year):
"""
父亲属性的初始化
再次初始化电动汽车的独特属性
"""
super().__init__(make,model,year)#super()可以让我们调用父亲的方法
self.battery_size=Battery()#直接将基本属性添加到子类的基本属性中




defdescribe_battery(self):#添加新方法
"""打印一条描述电池容量的信息"""
print(f"Thiscarhasa{self.battery_size.battery_size}-kwhbattery.")#如果battery没有成为一个类,battery相当于一个简单
#属性已经是默认值了。但是把battery变成类时,battery_size=Battery需要在这类电池中找到描述电池的方法,所以格式是,实例名.属性.类方法




deffill_gas_tank(self):
"""电瓶车没有汽油"""
print(f"Thiscardoesn'tneedagastank")


my_tesla=Electric_Car('tesla','models',2019)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()


my_tesla.fill_gas_tank()


my_tesla.battery_size.describe_battery_size()
my_tesla.battery_size.get_range()

以上是python将实例作为属性的方法,希望对大家有所帮助。更多Python学习指导:python基础教程

本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。