当前位置: 首页 > news >正文

python命名规范

一、概述

以前写python代码没有个代码,写出的代码一点也不规范

二、命名规范

2.1类的命名规范

总是使用首字母大写单词串。如MyClass、ClassName。内部类可以使用额外的前导下划线。

2.2函数和方法的命名规范

小写+下划线,如method_name。

2.3函数参数

小写+下划线,如function_parameter_name。如果一个函数的参数名称和保留的关键字冲突,通常使用一个后缀下划线,如random_。

2.4全局变量

对于from M import *导入语句,如果想阻止导入模块内的全局变量可以使用旧有的规范,在全局变量上加一个前导的下划线,如_var_name。应避免使用全局变量。

2.5变量

小写,由下划线连接各个单词。如color、this_is_a_variable。

WARNING

  • 不论是类成员变量还是全局变量,均不使用 m 或 g 前缀。
  • 私有类成员使用单一下划线前缀标识。
  • 变量名不应带有类型信息,因为Python是动态类型语言。如 iValue、names_list、dict_obj 等都不是好的命名

2.6常量

常量名所有字母大写,由下划线连接各个单词如MAX_OVERFLOW,TOTAL。

2.7异常

以“Error”作为后缀。

2.8文件名

全小写,可使用下划线

2.9包

应该是简短的、小写的名字。如果下划线可以改善可读性可以加入,如mypackage。

2.10模块

与包的规范同,如mymodule。

2.11缩写

命名应当尽量使用全拼写的单词,缩写的情况有如下两种:

常用的缩写,如XML、ID等,在命名时也应只大写首字母,如XmlParser。
命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式。
例如:
function 缩写为 fn
text 缩写为 txt
object 缩写为 obj
count 缩写为 cnt
number 缩写为 num,等。

2.12前导后缀下划线

一个前导下划线:表示非公有。
一个后缀下划线:避免关键字冲突。
两个前导下划线:当命名一个类属性引起名称冲突时使用。
两个前导和后缀下划线:“魔”(有特殊用图)对象或者属性,例如__init__或者__file__。绝对不要创造这样的名字,而只是使用它们。
注意:关于下划线的使用存在一些争议。

2.13其他

主要是指 xxx 形式的系统保留字命名法。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。如

class Base(object):
def init(self, id, parent = None):
self.id = id
self.parent = parent
def message(self, msgid):
其中 id、parent 和 message 都采用了系统保留字命名法。

三、参考

JAVA、C、Python各编程语言命名规范(最全、持续补充)-CSDN博客

相关文章:

python命名规范

一、概述 以前写python代码没有个代码,写出的代码一点也不规范 二、命名规范 2.1类的命名规范 总是使用首字母大写单词串。如MyClass、ClassName。内部类可以使用额外的前导下划线。 2.2函数和方法的命名规范 小写下划线,如method_name。 2.3函数…...

Redis学习笔记--002

Redis的JAVA客户端 文章目录 Redis的JAVA客户端一、Redis的Java客户端的种类二、Jedis2.1、使用步骤2.2、Jedis连接池 三、[SpringDataRedis](https://spring.io/projects/spring-data-redis)3.1、介绍3.2、RedisTemplate3.3、SpringDataRedis使用步骤3.4、SpringDataRedis的序…...

Visual Stdio 2019 win10 64bit下 无法找到 资源编译器DLL,请确认路径是否正确,和无法下载 win10SDK_10.0

上面的2个原因 第一个原因是因为安装时候,漏掉勾选 vistual stdio sdk 和 windows 通用c运行时 其中的一项目 第2个原因是没有安装 sdk...

设计模式:中介者模式(C++实现)

在中介者模式中&#xff0c;中介者对象负责协调多个对象之间的交互&#xff0c;将对象之间的耦合度降低。 #include <iostream> #include <string> #include <vector>class Colleague;// 中介者接口 class Mediator { public:virtual void sendMessage(Coll…...

Python常用函数

最近跑实验&#xff0c;记录一些常用的 Python 函数&#xff0c;便于自己复习和学习&#xff0c;仅用来学习。 1.Python 中的 os.path.join() 参考该文章 深度了解 在 Python 中&#xff0c;处理文件和目录路径是常见的任务。为了简化路径的拼接和操作&#xff0c;Python 提供…...

进程与线程的记忆方法

有很多人经常会分不清进程与线程的关系&#xff0c; 嗯。。。。。。可能只有我自己记不清吧 举个例子&#xff1a; 进程&#xff1a;登录一个qq号&#xff0c;就是一个进程。 线程&#xff1a;同时打开多个窗口聊天&#xff0c;就是多个线程。 每次记忆完&#xff0c;过了一段…...

支持私有化部署的 WorkPlus,助您构建定制化的即时通讯平台

随着信息技术的飞速发展&#xff0c;企业对于即时通讯平台的需求也不断提升。而在信息安全日益重要的时代背景下&#xff0c;随之而来的是对数据保护和隐私安全的高度关注。私有化即时通讯平台应运而生&#xff0c;成为企业保护数据安全的守护者。在众多品牌中&#xff0c;Work…...

adjustText库解决深度学习、视觉模型matplotlib画散点图时由于标签非常多导致的重叠现象

pytorch框架 import matplotlib.pyplot as plt import numpy as np from adjustText import adjust_texty [30.48, 30.71, 30.52, 31.35, 31.53, 31.54, 31.82, 32.13, 32.21, 32.15, 31.92, 32.24, 32.21, 32.20, 32.35] x [0.057, 0.012, 0.025, 0.665, 1.774, 0.813, 0.55…...

机器学习线性回归学习总结笔记

线性回归模板&#xff1a; 1&#xff09;获取数据: 2&#xff09;划分数据集&#xff1a; 一般使用&#xff1a;train_test_split&#xff08;&#xff09; 划分数据集的包from sklearn.model_selection import train_test_split 3&#xff09;标准化处理 StandardScaler…...

火狐连接错误代码SEC_ERROR_UNKNOWN_ISSUER

最近开发的实验启动功能&#xff0c;测试人员用火狐浏览进行测试&#xff0c;一直报错 错误代码SEC_ERROR_UNKNOWN_ISSUER 在网上搜索很多文章&#xff0c;都没有解决我的问题&#xff0c;最后自己花时间研究了下&#xff0c;灵感来源于项目中&#xff0c;就类似于白名单的功能…...

react 网页/app复制分享链接到剪切板,分享到国外各大社交平台,通过WhatsApp方式分享以及SMS短信方式分享链接内容

1.需求 最近在做一个国际网站app,需要把app中某个页面的图文链接分享到国外各大社交平台上(facebook,whatapp,telegram,twitter等),以及通过WhatApp聊天方式分享&#xff0c;和SMS短信方式分享链接内容&#xff0c;该怎么做呢&#xff1f;图示如下: 分享到国外各大社交平台&am…...

用智能文字识别技术赋能古彝文数字化之路

目录 1、前言 2、对古彝文古籍的保护迫在眉睫 3、古彝文识别的难点问题 4、古彝文文字识别的关键技术 4.1、智能高清滤镜技术 4.2、图像矫正 4.3、图像增强 4.4、版面还原 5、合合信息识别技术赋能古彝文数字化 1、前言 古彝文指的是在云南、贵州、四川等地的彝族人之…...

QT入门10个小demo——MP4视频播放器

&#x1f64c;秋名山码民的主页 &#x1f602;oi退役选手&#xff0c;Java、大数据、单片机、IoT均有所涉猎&#xff0c;热爱技术&#xff0c;技术无罪 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; 获取源码&#xff0c;添加WX 目录 一、前…...

MySQL常用操作

目录 1. 安装MySQL/MariaDB2. 用户管理2.1 用户信息2.2 用户权限privileges 3. 增删改查3.1 增删数据库/表3.2 查询 参考 1. 安装MySQL/MariaDB # 1) 确认是否已安装mysql rpm -qa | grep mysql# 2) &#xff08;如无&#xff09;执行以下命令进行安装 ## 方法一 yum install …...

uni-app 之 Toast 消息提示

uni-app 之 Toast 消息提示 image.png <template> <view class"content"> <u-button click"showToast">Toast 消息提示 </u-button><u-toast ref"uToast"></u-toast></view></template> <…...

C语言--指针进阶3--数组指针

数组指针定义 类比&#xff1a; 整型指针--指向整型的指针 int a 10; int* pa &a; 字符指针--指向字符的指针 char ch a; char* pc &ch; 数组指针--指向数组的指针 int arr[10] { 0 }; int(*p)[10] &arr; // 数组指针 区分&#xff1a;指针数组和数组…...

购物车案例

1功能模块分析 请求动态渲染购物车&#xff0c;数据存vuex 数据框控件 修改数据 动态计算总价和总数量 2脚手架新建项目 终端安装axios&#xff1a;npm install axios -g 基于json-server工具&#xff0c;准备后端接口服务环境:&#xff08;模拟后台假数据&#xff09; 1…...

c++ chrono

chrono chrono是一个time library, 源于boost&#xff0c;现在是C标准 使用时&#xff0c;需要导入chrono&#xff0c;其所有实现均在std::chrono namespace下。 #include <chrono>chrono是一个模版库&#xff0c;使用简单&#xff0c;功能强大&#xff0c;有三个重要…...

实现长短地址的相互映射

长地址请求&#xff0c;返回短地址&#xff0c;如何实现长短地址的相互映射 转换为&#xff1a; 解决方式&#xff1a; 使用发号策略&#xff0c;给每一个长地址发一个号&#xff0c;不停自增&#xff0c;第一个使用这个服务的人得到的短地址是xx.xx/0 第二个是 xx.xx/1 &…...

第1讲:前后端分离思想

什么是前端 前端其实是个很大的范畴。 简单点说&#xff0c;针对浏览器的开发&#xff0c;浏览器呈现出来的页面就是前端。它的实质是前端代码在浏览器端被编译、运行、渲染。前端代码主要由三个部分构成&#xff1a;HTML&#xff08;超文本标记语言&#xff09;、CSS&#xf…...

ImageGlass架构深度解析:高性能Windows图像查看器的技术实现与优化策略

ImageGlass架构深度解析&#xff1a;高性能Windows图像查看器的技术实现与优化策略 【免费下载链接】ImageGlass &#x1f3de; A lightweight, versatile image viewer 项目地址: https://gitcode.com/gh_mirrors/im/ImageGlass ImageGlass作为一款轻量级、高性能的Win…...

RT-Thread Nano 3.0.3移植STM32F103后,第一个实战:用FinSH组件实现串口命令行调试

RT-Thread Nano 3.0.3移植STM32F103实战&#xff1a;FinSH组件实现串口命令行调试 当你成功将RT-Thread Nano移植到STM32F103开发板后&#xff0c;第一个令人兴奋的里程碑就是让系统真正"活"起来——而FinSH组件正是实现这一目标的完美起点。这个内置的命令行交互工具…...

建议收藏|盘点2026年顶尖配置的AI论文平台

一天写完毕业论文在2026年已不再是天方夜谭。以下是2026年最炸裂、实测能大幅提速的AI论文平台&#xff0c;覆盖选题构思、文献分析、内容生成、格式排版四大核心场景&#xff0c;帮你高效搞定论文。 一、全流程王者&#xff1a;一站式搞定论文全链路&#xff08;一天定稿首选&…...

Qwen3.5-27BGPU算力优化实践:FP16量化+梯度检查点+内存映射技术

Qwen3.5-27B GPU算力优化实践&#xff1a;FP16量化梯度检查点内存映射技术 1. 引言 在部署大型视觉多模态模型Qwen3.5-27B时&#xff0c;GPU显存和计算效率是两大关键挑战。本文将分享我们在4张RTX 4090 D 24GB显卡环境下&#xff0c;通过FP16量化、梯度检查点和内存映射三项…...

CasRel模型LaTeX学术论文辅助工具:自动提取相关工作和贡献

CasRel模型LaTeX学术论文辅助工具&#xff1a;自动提取相关工作和贡献 每次打开一篇新的学术论文&#xff0c;尤其是那些动辄几十页的综述或顶会文章&#xff0c;你是不是也有点头大&#xff1f;密密麻麻的文字里&#xff0c;最关键的信息——“别人做了什么”、“他们有什么不…...

刚刚,英伟达革了自己的命:智能体自主进化7天,干掉所有算子工程师、GPU专家

这应该是今天刚刚出炉的、最炸裂的文章。在很多算子开发的微信群组&#xff0c;已经掀起了轩然大波。「这或许是超人类智能在软件领域的真正首次展露。」英伟达许冰刚刚在 X 上发出了如此断言。他所评论的&#xff0c;正是他与 Terry Chen 和 Zhifan Ye 为共同一作的一项英伟达…...

PCB数据处理利器:从安装到实战的全方位指南

PCB数据处理利器&#xff1a;从安装到实战的全方位指南 【免费下载链接】pcb-tools Tools to work with PCB data (Gerber, Excellon, NC files) using Python. 项目地址: https://gitcode.com/gh_mirrors/pc/pcb-tools 1. 项目价值解析 PCB Tools作为一款专注于印制电…...

OpenClaw语音交互:nanobot对接Whisper实现声控任务触发

OpenClaw语音交互&#xff1a;nanobot对接Whisper实现声控任务触发 1. 为什么需要语音交互能力 作为一个长期使用OpenClaw进行个人工作流自动化的用户&#xff0c;我一直在思考如何让这个工具更加"无感"地融入日常。键盘输入固然高效&#xff0c;但在某些场景下——…...

告别混乱!用CANoe的arxml数据库高效管理车载网络信号(附Signal/PDU/Frame创建全流程)

告别混乱&#xff01;用CANoe的arxml数据库高效管理车载网络信号&#xff08;附Signal/PDU/Frame创建全流程&#xff09; 当车载网络从简单的CAN总线发展到包含FlexRay、以太网等多协议混合架构时&#xff0c;工程师们面临的信号管理复杂度呈指数级增长。一个典型的域控制器项目…...

3步搞定黑苹果配置:OpCore-Simplify让EFI构建效率提升80%的智能方案

3步搞定黑苹果配置&#xff1a;OpCore-Simplify让EFI构建效率提升80%的智能方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否经历过这些痛苦…...