类的编码风格
1、类名应采用驼峰命名法 , 即将类名中的每个单词的首字母都大写, 而不使用下划线。 实例名和模块名都采用小写格式, 并在单词之间加上下划线。
2、对于每个类, 都应紧跟在类定义后面包含一个文档字符串。 这种文档字符串简要地描述类的功能, 并遵循编写函数的文档字符串时采用的格式约定。 每个模块也都应包含一个文档字符串, 对其中的类可用于做什么进行描述。
3、可使用空行来组织代码, 但不要滥用。 在类中, 可使用一个空行来分隔方法; 而在模块中, 可使用两个空行来分隔类。
4、需要同时导入标准库中的模块和你编写的模块时, 先编写导入标准库模块的import 语句, 再添加一个空行, 然后编写导入你自己编写的模块的import 语句。 在包含多条import 语句的程序中, 这种做法让人更容易明白程序使用的各个模块都来自何方。
用代码来学习类
# -*- coding: utf-8 -*-
"""一个可用于表示燃油汽车和电动汽车的类""" # 模块级文档字符串, 对该模块的内容做了简要的描述。 你应为自己创建的每个模块都编写文档字符串
class Car(object):
"""一次模拟汽车的简单尝试"""
def __init__(self, make, model, year):
"""初始化汽车属性"""
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0 # 里程设置为0
def get_descriptive_name(self):
"""返回整洁的描述性信息"""
long_name = str(self.year) + ' ' + self.make + ' ' + self.model
return long_name.title()
def read_odometer(self):
"""打印一条指出汽车里程的消息"""
print "This car has " + str(self.odometer_reading) + " miles on it."
'''
def update_odometer(self, mileage): # 通过方法修改属性的值
"""将里程表读数设置为指定的数值"""
self.odometer_reading = mileage # 接受一个里程值,并存在变量中
'''
def update_odometer(self, mileage): # 通过方法修改属性的值,添加逻辑
"""
将里程表读数设置为指定的数值
禁止将里程表读数往回调
"""
if mileage >= self.odometer_reading:
self.odometer_reading = mileage # 接受一个里程值,并存在变量中
else:
print "You can't roll back an odometer!"
def increment_odometer(self, miles):
"""将里程表读数增加指定的数值"""
self.odometer_reading += miles
class Battery():
"""一次模拟电动汽车电瓶的简单尝试"""
def __init__(self, battery_size = 70):
"""初始化电瓶的属性"""
self.battery_size = battery_size
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
class ElectricCar(Car):
"""模拟电动汽车的独特之处"""
def __init__(self, make, model, year):
"""
初始化父类属性,再初始化电动汽车特有的属性
"""
super(ElectricCar, self).__init__(make, model, year)
self.battery = Battery()
# -*- coding: utf-8 -*-
import car
my_bettle = car.Car('volkswagen', 'beetle', 2016)
'''
我们导入了整个car 模块。 接下来,
我们使用语法 module_name.class_name 访问需要的类。
'''
print my_bettle.get_descriptive_name()
my_tesla = car.ElectricCar('tesla', 'roadster', 2016)
print my_tesla.get_descriptive_name()
运行结果
2016 Volkswagen Beetle
2016 Tesla Roadster
代码
from car import ElectricCar
my_tesla = ElectricCar('tesla', 'model s', 2016)
print my_tesla.get_descriptive_name()
my_tesla.battery.describe_battery()
my_tesla.battery.get_range()
运行结果
2016 Tesla Model S
This car has a 70-kwh battery.
This car can go approximately 240 miles on a full charge.
网友评论