• 技术文章 >Python技术 >Python基础教程

    python如何将实例用作属性

    小妮浅浅小妮浅浅2021-08-05 09:45:49原创3687

    1、说明

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

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

    2、实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    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实例
    上一篇:python删除str中特定字符的方法 下一篇:python轮盘赌算法如何使用

    相关文章推荐

    • python实例:Python中如何删除numpy数组的元素• Python实例之用Python求完全平方数• python实例如何访问局部变量?• Python实例属性的优先级分析• python实例:用代码画五角星• python实例属性的查找顺序• python实例方法中self的作用

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网