0
点赞
收藏
分享

微信扫一扫

Python编码规范


一. 命名规范

  • 类: 采用​​驼峰命名法​​​, 每个单词首字母大写,不使用​​_​
  • ​ElectricCar​​​、​​Car​
  • 类的示例: 全部小写, 单词间使用​​_​​分割
  • ​my_dog​​​、​​my_new_car​
  • 函数: 全部小写,单词之间使用​​_​​分割
  • 模块: 全部小写,单词之间使用​​_​​​分割(命名方式可以采用: ​​动词_名词​​方式)
  • ​function_name​​​、​​make_cookie​
  • 包名: 全部小写, 单词之间使用​​_​​分割

其他的请看:

GLOBAL_VAR_NAME, instance_var_name, function_parameter_name, local_var_name.

二. 导入格式

  • import语句放在文件开头
  • 唯一例外: 文件开头使用了注释来描述整个程序
  • 不要使用​​from module_name import *​​来导入模块的每个函数
  • 不要使用​​from module_name import *​​来导入模块的每个类
  • 没有明确指出你使用了模块中的哪些类
  • 还可能引发名称方面的困惑
  • 导入模块中的类
  • 如果导入的类不多, 可以分别导入
  • ​from car import Car, ElectricCar​
  • 使用的时候, 创建实例可以​​my_tesla = ElectricCar('tesla', 2016)​​, 直接使用导入的类即可
  • 如果导入很多类, 则导入整个模块
  • import car
  • 导入整个模块, 访问指定类使用据点表示法​​module_name.ClassName​​​, 例如: ​​my_tesla = car.ElectricCar('tesla', 2016)​

.代码行规范

  • 代码行的长度不要超过​​79​​字符
  • 函数定义的形参超过79字符: 函数定义中左括号后回车, 下一行按两次Tab键, 开始输入.

def function_name(
parameter_0, parameter_1, parameter_2,
parameter_3, parameter_4, parameter_5):
function body...

模块中多个类的代码编写格式模板

  • 每个类应紧跟一个文档字符串(描述类的功能)
  • 每个模块后面也应包含一个文档字符串(对其中的类可用于做什么进行描述)
  • 类中,方法使用一个空行分隔
  • 模块中, 使用两个空行分隔类
  • 导入标准库中的模块和你编写的模块
  • 先编写导入标准库模块的import语句, 添加一个空行, 再编写导入你自己编写的模块的import语句
    car.py

"""一个用于表示汽车、燃油汽车和电动汽车的类"""

import requests

from car import Car


class Car(object):
"""一次模拟汽车的简单尝试"""

def __init__(self, make, model, year):
"""初始化描述汽车的属性"""
self.make = make
self.model = model
self.year = year
self.odometer_reading = 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):
"""将里程表读数设置为指定的值, 拒绝将里程表回拨

:param 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(object):
"""一次模拟电动汽车电瓶的简单尝试"""

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().__init__(make, model, year)
self.battery = Battery()

参考资料:

  • Python编程 从入门到实践 - Eric Matthes
  • ​​Google开源项目风格指南 - Python风格规范​​
  • ​​PEP 8-Python编码规范整理​​


举报

相关推荐

0 条评论