美文网首页
9.4.6 在一个模块中导入另一个模块

9.4.6 在一个模块中导入另一个模块

作者: python大大 | 来源:发表于2017-10-15 23:45 被阅读0次

需要将类分散到多个模块中,以免模块太大,或在同一个模块中存储不相关的类。将类存储在多个模块中时,你可能会发现一个模块中的类依赖于另一个模块中的类。
在这种情况下,可在前一个模块中导入必要的类

屏幕快照 2017-10-15 下午11.43.52.png

electric_car.py

"""A set of classes that can be used to represent electric cars."""

from car import Car

class Battery():
    """A simple attempt to model a battery for an electric car."""

    def __init__(self, battery_size=60):
        """Initialize the batteery's attributes."""
        self.battery_size = battery_size

    def describe_battery(self):
        """Print a statement describing the battery size."""
        print("This car has a " + str(self.battery_size) + "-kWh battery.")  
        
    def get_range(self):
        """Print a statement about the range this battery provides."""
        if self.battery_size == 60:
            range = 140
        elif self.battery_size == 85:
            range = 185
            
        message = "This car can go approximately " + str(range)
        message += " miles on a full charge."
        print(message)
    
        
class ElectricCar(Car):
    """Models aspects of a car, specific to electric vehicles."""

    def __init__(self, manufacturer, model, year):
        """
        Initialize attributes of the parent class.
        Then initialize attributes specific to an electric car.
        """
        super(ElectricCar,self).__init__(manufacturer, model, year)
        self.battery = Battery()

car.py

"""A class that can be used to represent a car."""

class Car(object):
    """A simple attempt to represent a car."""

    def __init__(self, manufacturer, model, year):
        """Initialize attributes to describe a car."""
        self.manufacturer = manufacturer
        self.model = model
        self.year = year
        self.odometer_reading = 0
        
    def get_descriptive_name(self):
        """Return a neatly formatted descriptive name."""
        long_name = str(self.year) + ' ' + self.manufacturer + ' ' + self.model
        return long_name.title()
    
    def read_odometer(self):
        """Print a statement showing the car's mileage."""
        print("This car has " + str(self.odometer_reading) + " miles on it.")
        
    def update_odometer(self, mileage):
        """
        Set the odometer reading to the given value.
        Reject the change if it attempts to roll the odometer back.
        """
        if mileage >= self.odometer_reading:
            self.odometer_reading = mileage
        else:
            print("You can't roll back an odometer!")
    
    def increment_odometer(self, miles):
        """Add the given amount to the odometer reading."""
        self.odometer_reading += miles


my_cars.py

from car import Car
from electric_car import ElectricCar

my_beetle = Car('volkswagen', 'beetle', 2015)
print(my_beetle.get_descriptive_name())

my_tesla = ElectricCar('tesla', 'roadster', 2015)
print(my_tesla.get_descriptive_name())

相关文章

  • 跟着大大学python(48)

    9.4.6 在一个模块中导入另一个模块 需要将内分散的多个模块中,以免模块过大,或在同一模块中存储不相关的类。将类...

  • 第45课:在一个模块中导入另一个模块

    预习: 9.4.6 在一个模块中导入另一个模块 练习:car.py electric_car.py my_car.py

  • 9.4.6 在一个模块中导入另一个模块

    需要将类分散到多个模块中,以免模块太大,或在同一个模块中存储不相关的类。将类存储在多个模块中时,你可能会发现一个模...

  • Python 数据库连接池的正确打开方式

    在单独模块中定义数据库连接池对象: 在主程序中导入该模块: 问题来了:当我们在程序里导入另一个模块或者导入另一个模...

  • python中 if __name__ == "__main__

    python在导入模块时,模块中的代码可能被执行。例如: 在名为module2.py的另一个模块中导入module...

  • day11-课后总结

    文件操作 1.模块的使用 a.导入模块可以通过import或者from-import在一块模块中去使用另一个模块的...

  • 2018-10-12

    一、模块的导入 一个py文件就是一个模块, 通过import或from import在一个模块使用另一个 1、im...

  • import export

    一 import 导入整个模块的内容 用于导入由另一个模块导出的绑定。 在这里,访问导出意味着使用模块名称(在这种...

  • (3)scrapy中的模块导入

    模块的导入 在(1)scrapy中的from_crawler中我们讲了当导入模块之后,使用模块的from_craw...

  • export default 和export的使用

    在ES6中也通过规范的形式,规定了如何导入和导出模块 es6中的导入模块 import 模块名称 from 模块标...

网友评论

      本文标题:9.4.6 在一个模块中导入另一个模块

      本文链接:https://www.haomeiwen.com/subject/hwehuxtx.html