美文网首页python
python - class

python - class

作者: 庵下桃花仙 | 来源:发表于2018-07-14 20:37 被阅读14次

类的编码风格

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.

相关文章

  • Python - Extracting ZIP

    Zip format and Python ZipFile class class zipfile.ZipFile...

  • Fluent系列2

    First-Class Functions Functions in Python are first-class...

  • 2018-12-03 类class

    Python入门之类(class)

  • Python Note4 (OOP)

    Labels: Python, Class,Object Ref:Python Classes/Objects h...

  • class python

    If we wanted to extract a header, grab all the columns, a...

  • Python -- Class

    创建 Class 实例化 Class 传递 实例化后的 Class, 比如 bmw ,叫做对象;传递对象(及其他可...

  • python - class

    类的编码风格 1、类名应采用驼峰命名法 , 即将类名中的每个单词的首字母都大写, 而不使用下划线。 实例名和模块名...

  • Python class

    定义一个类 创建一个对象 Python会为你完成对象创建,然后你可以使用init()方法定制对象的初始化。 每个方...

  • python class

    instance variables and class variables @classmethod means...

  • 【Python】Class

    面对对象编程的三大特性:封装,继承,多态。 封装:create class class封装了Attribute和m...

网友评论

    本文标题:python - class

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