python如何将实例用作属性

美女程序员鼓励师

1、说明

由于模拟实物中会有越来越多的细节,导致一种类变得有些复杂,此时我们可以从中提取细节,将其作为一种类型,并将其作为子类型的属性。

将子类中的电池给单独分离出来,形成一个新的类。

2、实例

class Car:

---snip---

#创建子类时,父类文件必须包含在该文件中,且圆括号内必须包含父类的名称

#---snip--- 表示上一个代码中父类的基本属性

 

class Battery:#先是定义了一个新类——Battery,他没有继承任何类。

    """一次模拟电动汽车电瓶的简单尝试。"""

 

 

    def __init__(self,battery_size = 75):#其中有一个形参battery_size,这个形参是可选的,被默认为75.但不是默认值,仍然可以进行改变的

        """初始化电瓶的属性"""

        self.battery_size = battery_size

 

 

    def describe_battery_size(self):

        """打印一条描述电瓶容量的消息"""

        print(f"This car has a {self.battery_size}-kwh battery")

 

 

 

 

    def get_range(self):

        """打印一条消息,指出电瓶的续航里程"""

        if self.battery_size == 75:

            range = 260

 

 

        elif self.battery_size == 100:

            range = 315

 

 

        print(f"This car can go about {range} miles on a full charge")

 

 

#虽然将原来的实例电池作为属性,有点繁杂,但是整个之后可以方便我们对电池进行更详细的描述,不至于在子类中显得太繁杂

 

 

class Electric_Car(Car):

    """描述电动汽车类"""

 

 

    def __init__(self,make,model,year):

        """

        初始化父亲的属性

        再初始化电动汽车特有的属性

        """

        super().__init__(make,model,year)#super()能够让我们调用父类的方法

        self.battery_size = Battery()#直接在子类的基本属性中添加基本属性了

 

 

 

 

    def describe_battery(self):#添加新的方法

        """打印一条描述电瓶容量的消息"""

        print(f"This car has a {self.battery_size.battery_size}-kwh battery.")#当battery没有变成类的时候,battery相当于一个一个简单

#的属性并且已经是个默认值了。但是将battery变成类时,battery_size = Battery 然后需要去该类中寻找描述电池的方法,所以格式为,实例名.属性.类方法

 

 

 

 

    def fill_gas_tank(self):

        """电瓶车没有汽油"""

        print(f"This car doesn't need a gas tank")

 

 

my_tesla = Electric_Car('tesla','model s',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电脑。

以上是 python如何将实例用作属性 的全部内容, 来源链接: utcz.com/z/544796.html

回到顶部