欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python编码规范

程序员文章站 2022-08-07 16:03:52
一. 命名规范类: 采用驼峰命名法, 每个单词首字母大写,不使用_ElectricCar、Car类的示例: 全部小写, 单词间使用_分割my_dog、my_new_car函数: 全部小写,单词之间使用_分割模块: 全部小写,单词之间使用_分割(命名方式可以采用: 动词_名词方式)function_name、make_cookie包名: 全部小写, 单词之间使用_分割其他的请看:GLOBAL_VAR_NAME, instance_var_name, function...

一. 命名规范


  • 类: 采用驼峰命名法, 每个单词首字母大写,不使用_
    • ElectricCarCar
  • 类的示例: 全部小写, 单词间使用_分割
    • my_dogmy_new_car
  • 函数: 全部小写,单词之间使用_分割
  • 模块: 全部小写,单词之间使用_分割(命名方式可以采用: 动词_名词方式)
    • function_namemake_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()

参考资料:

本文地址:https://blog.csdn.net/qq_36852780/article/details/107650747

相关标签: # Python