# Py开发规范

Py开发规范

编码

# -*- coding: utf-8 -*-

缩进

统一使用 4 个空格进行缩进

变量风格

# 类变量/常亮变量  `大写`
BASE_PATH = ''


# 驼峰格式/下划线格式
removeSectionx=''

remove_section=''

#  编写变量 贴近实际意义 , 变量名较长 备注上注释

注释

# 单行数据


"""
	多行注释
"""

###########################
#  多行注释
###########################

导包

### 系统工具包
import re, os , cv2  #不推荐

#应该下面这种
import re
import os
import cv

########################

### 三方工具包

from PIL import Image
from PIL import ImageFilter
#推荐这种
from PIL import Image, ImageFilter


########################

### 项目内导包
	1. 相对路径导包(相对项目路径), 少用绝对导包
    	from .xxx import timmer

### 文件夹内包含 python代码, 一定要有 __init__.py文件

### 包名 格式
	1. 不与文件名一致
    2. 包名贴合实际意义

函数名字

# 尽可能使用下划线拼接函数名

def remove_async_task_result():
    pass

函数参数

固定函数(单一功能函数) 指定参数
def gen_hash_key(args, user_id):
    pass
    
函数功能复杂,且变量具有动态变换,使用万能传参

def get_save_tif_path(*args, **kwargs):
    pass

1. 类 声明
  1.1 驼峰格式 (首字母大写)
  1.2 object类继承 强制性(适配py2语法)
  1.3 命名具有实际意义
        class MySQLDbTool(object):

2. 注意 静态函数 , 类函数 ,私有函数使用
	
@classmethod 
def cls_method(cls):
    pass
    
@staticmethod
def static_method():
    pass
    
def _private_method():
    pass

计算符号

a = a+1 # 不推荐
a+=1 # 推荐

换行符使用

\   # 当代码过长时,调整代码结构

.join(SatelliteParameter, SatelliteParameter.sensorid == cls.sensor_id)\
.join(SatelliteInfo, SatelliteInfo.id == SatelliteParameter.sid)\
.filter(*filter_condition).order_by(cls.sensor_id, cls.id).all()

上下文管理

# 1. db连接 , 文件读写  使用 with 语句管理
with open("file_name","r",encoding="utf-8") as f:
    pass

# 2. with 语句 可作用于 对象 , 类中中必须包含 __enter__ 和  __exit__
def __enter__(self):
    return self
def __exit__(self, exc_type, exc_val, exc_tb):
    pass

未完成事件管理

# todo  pycharm 提供工具 

循环

# for 循环嵌套 , 尽量不超过 两~三 层

字符串拼接

1. f"{imperative}~{expletive}" 
2. "{}{}".format(imperative, expletive)
3. '%s, %s!' % (imperative, expletive)

文件路径

# os 模块 
1. os.path.join() 文件路径拼接
2. os.path.abspath(__file__) 获取当前文件绝对路径
3. os.path.basename('路径') 获取文件名
4. os.path.exists(algorithm_path)  是否存在
5. os.makedirs(algorithm_path) 创建文件目录

内置函数

# 提高python处理数据效率
map
reduce
filter
sorted  
....

匿名函数

lambda  匿名函数, 结合内置函数使用

sorted()

表达式


[i for i in range(1,9)]
[i for i in range(1,9)]
{i for i in range(1,9)}
{i:i for i in range(1,9)}

常用数据类型

字典 常使用 get形式取值,   关键字取值容易导致程序中断
posted @   染指未来  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示