Python基础-类-导入类
该程序示例演示在模块car.py中创建不同的类,并在另一个模块my_car.py中导入car.py模块中的类并进行相关操作。同时也演示了导入Python标准库的操作。
car.py
# ~ coding=GBK
# ~ 创建Car类
class Car():
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
#给属性指定默认值,指定初始里程为0
self.odometer = 0
def get_descriptive_name(self):
name = str(self.year) + ' ' + self.make + ' ' + self.model
return name.title()
def read_odometer(self):
'''读取里程表读数'''
print("This car has " + str(self.odometer) + " miles on it.")
def update_odometer(self, mile_value):
'''修改里程表读数为mile_value'''
if mile_value >= self.odometer:#禁止往回调里程表
self.odometer = mile_value
else:
print("You can't roll back an odometer!")
def increment_odometer(self, increment_miles):
if increment_miles >= 0:
self.odometer += increment_miles
else:
print("You can't roll back an odometer!!")
class Battery():
def __init__(self):
self.battery_size = 70#默认值为70
def describe_battery(self):
print("This car has a " + str(self.battery_size) + "-kWh battery.")
def get_range(self):
if self.battery_size == 70:
range = 240
elif self.battery_size == 85:
range = 270
message = "This car can go approximately " + str(range)
message += " miles on a full charge."
print(message)
# ~ ElectricCar类继承Car类
class ElectricCar(Car):
def __init__(self, make, model, year):
super().__init__(make, model, year)#初始化父类的属性
self.battery = Battery()#将Battery类的实例用作属性
my_car.py
# ~ coding=UTF-8
from collections import OrderedDict #导入一个Python标准库:有序字典
# ~ OrderedDict类与字典的区别仅仅在于OrderedDict记录了键值对的添加顺序
from car import Car,ElectricCar
#不推荐使用以下方式,如果从模块(car.py)中导入很多类时,采用import car的形式,
#此时引用时需要使用 模块名.类名 的方式(car.Car('audi', 'a6', 2017))
# ~ from car import *
my_new_car = Car('audi', 'a6', 2017)
print(my_new_car.get_descriptive_name())
my_new_car.update_odometer(23)
my_new_car.read_odometer()
my_tesla = ElectricCar('tesla', 'model_s', 2019)
print(my_tesla.get_descriptive_name())
print(my_tesla.battery.battery_size)
my_tesla.battery.describe_battery()
my_tesla.battery.get_range()
favorite_languages = OrderedDict()#调用OrderedDict创建一个空的有序字典
favorite_languages['jen'] = 'python'
favorite_languages['sarah'] = 'c'
favorite_languages['edward'] = 'ruby'
favorite_languages['phil'] = 'python'
for name,language in favorite_languages.items():
print(name.title() + "'s favorite language is " +
language.title() + ".")