首页 > 编程语言 >Python编码规范

Python编码规范

时间:2022-11-04 18:36:00浏览次数:62  
标签:编码 name Python self 规范 导入 模块 import def


一. 命名规范


  • 类: 采用​​驼峰命名法​​​, 每个单词首字母大写,不使用​​_​
  • ​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()

参考资料:


标签:编码,name,Python,self,规范,导入,模块,import,def
From: https://blog.51cto.com/u_14233037/5824464

相关文章

  • [[] for _ in range(10)]详解 - python
    ​​[[]for_inrange(10)]​​这个语句看上去不知所云,​​[]​​​??​​_​​??对于我这种初学者看到这莫名的符号十分懵…首先最外层的​​[]​​​里面的​......
  • list详解 - Python
    文章目录​​一、list中的增加元素​​​​二、list中的删除元素​​​​三、list中查找元素​​​​四、list中的更改元素​​首先定义一个列表​​a=[1,2,3]​​一、l......
  • python 虚拟机框架-运行时环境初探
    在Python中,关于线程状态信息的抽象是通过PyThreadState对象来实现的,一个线程将拥有一个PyThrasdState对象。所以从另一种意义来说,这个PyThreadState对象也可以看成是对线程......
  • python之常用方法
    查找列表中出现最频繁的元素使用max()函数可以快速查找出一个列表中出现频率最高的某个元素。>>>a=[1,2,3,4,3,4,5,4,4,2]>>>b=max(set(a),key=a.co......
  • 按指定编码读写文件
    importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStreamRea......
  • 编码解码
    /**编码:字符串变成字节数组*解码:字节数组变字符串**String-->byte[];str.getBytes(charsetName);**byte[]-->String;newString(byte[],charsetName)*/......
  • Python xml 文件解析操作之 ElementTree 模块
    首先我们了解下XML格式Element类型是一种灵活的容器对象,用于在内存中存储结构化数据。每个element对象都具有以下属性:1.tag标签:string对象,表示数据代表的种类。......
  • python面试题
    将一个字符串逆序,不能使用反转函数求从10到100中能被3或5整除的数的和WhatisPython?WhatarethebenefitsofusingPython?WhatisPEP8?Whatispicklingandunpic......
  • 【python】后端文件流下载数据
    后台实现下载接口1.1通过文件流下载importosimporttimefromdjango.httpimportStreamingHttpResponsedefdownload_file_blob(name,url):""":param......
  • python 打包后运行提示 ModuleNotFoundError: No module named 'xxx'
    毫无疑问,是打的包有问题。目前见到的原因有三:1.pycharm开发环境的引用的包版本和外面的环境引用的包版本不一致。  处理方式:想办法让两个版本一致。  相关命......