Python中的命名规范

2023-05-16

变量命名准则

  1. 您应当尽量使自己的变量命名含义清晰,不要使用混乱的字母、数字、表情等意义不明的字符来命名变量
  2. 一般来说,您不应当使自己的风格频发变换——如果可能,请将整个项目保持统一风格
  3. 此文章根据本人习惯与编码风格整理,可能和读者的个人习惯与风格有一定冲突,仅提供参考作用,非强制性标准
  4. 请尽量不要使用意义不明的字母缩写(此处提供字母缩写表)
  5. 有关下划线的特殊规定,请查看:在Python中,下划线代表着什么?
  6. Python3默认编码为UTF-8,理论上来说可以使用中文做变量名称,但我们通常不建议这么做
  7. 普通的Python变量可以由下划线(“_”)、字母、数字组成,但是不能由数字开头

知名命名法

  1. 小驼峰命名法——第一个单词的字母大写,其他单词字母均为小写,如:myFunctionName、myMethodName、myClassName
  2. 大驼峰命名法(帕斯卡命名法):所有单词字母大写,如:MyFunctionName、MyMethodName、MyClassName
  3. 下划线命名法:所有单词小写,用下划线链接,如:my_function_name、my_method_name、my_class_name
  4. 匈牙利命名法:以“属性+类型+对象描述”命名,但在Python中这种命名方法并不常见

常量

# 因Python中没有明确的“常量”概念,所以有此约定
# 全局变量一般为常量,且每个字母应当大写,中间用下划线连接
# 如:
NAME = 'value'
COUNT_NUMBER = 1

普通变量

# 普通变量应当以下划线命名法命名
# 如:
my_demo_name = 'value'

局部变量

# 局部变量原则上应当和普通变量的命名方式保持一致
# 但被大多数人所认可的,i、j、k亦可作为临时变量
# 而正如【变量命名准则 第五条】链接所述,亦可以用“_”命名那些并不重要的、用不到的变量
# 如:
my_demo_name = 'value'

for _ in range(10):
    print('value')

for i in range(10):
    for j in range(10):
        for k in range(10):
            print(i,j,k)

nums = [1,2,3]

for num in nums:
    print(num)

类与方法

# 类的名称应当以大驼峰命名法命名
# 函数或方法的名称应当以小驼峰命名法或下划线命名法命名(并应用适当的下划线规则),本人推荐使用小驼峰命名法
# 如:
class MyClassName:
    def __init__(self, name):
        self.name = name
    def getName(self):
        return self.name

print(MyClassName('value').getName())

self与cls

# 在实例方法中,应当在第一个参数的位置带上self,self表示此实例对象
# 在类方法中,应当在第一个参数的位置带上cls,cls表示此类
# 如:
class A:
    def __init__(self, name):
        s.name = name

    def print_(self):
        print(self.name)

obj = A('hi')
obj.print_()

# 但self与cls的具体名称并不是一定的,之所以使用self和cls是因为它是约定俗成的,如果愿意,也可以替换成其他字符(但通常不建议这么做)
# 如下也能正常运行:

class B:
    name = 'value'
    
    @classmethod
    def print_(c):
        print(c.name)

B.print_()

单词缩写

全称 含义 简称
automatic 自动的 auto
information 信息 info
addition 添加 add
message 消息 msg
function 函数 func
error 错误 err
object 对象 obj
count 计数 cnt
variable 变量 var
... ... ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python中的命名规范 的相关文章

  • 在 python 2 和 3 的spyder之间切换

    根据我在文档中了解到的内容 它指出您只需使用命令提示符创建一个新变量即可轻松在 2 个 python 环境之间切换 如果我已经安装了 python 2 7 则 conda create n python34 python 3 4 anaco
  • OpenCV 错误:使用 COLOR_BGR2GRAY 函数时断言失败

    我在使用 opencv 时遇到了一个奇怪的问题 我在 jupyter 笔记本中工作时没有任何问题 但在尝试运行此 Sublime 时却出现问题 错误是 OpenCV错误 cvtColor中断言失败 深度 CV 8U 深度 CV 16U 深度
  • 如何用spaCy获取依赖树?

    我一直在尝试寻找如何使用 spaCy 获取依赖树 但我找不到任何有关如何获取树的信息 只能在如何导航树 https spacy io usage examples subtrees 如果有人想轻松查看 spacy 生成的依赖关系树 一种解决
  • 返回不包括指定键的字典副本

    我想创建一个函数 返回字典的副本 不包括列表中指定的键 考虑这本词典 my dict keyA 1 keyB 2 keyC 3 致电without keys my dict keyB keyC 应该返回 keyA 1 我想用一行简洁的字典理
  • 无法安装时间模块

    我试过了pip install time and sudo H pip install time 但我不断收到错误 找不到满足要求时间的版本 从 版本 未找到时间匹配的发行版 我正在 PyCharm 中工作 但真正没有意义的是我可以在 Py
  • 使用 Python 抓取维基百科数据

    我正在尝试从以下内容中检索 3 列 NFL 球队 球员姓名 大学球队 维基百科页面 http en wikipedia org wiki 2008 NFL draft 我是 python 新手 一直在尝试使用 beautifulsoup 来
  • pandas 两个数据框交叉连接[重复]

    这个问题在这里已经有答案了 我找不到有关交叉联接的任何内容 包括合并 联接或其他一些内容 我需要使用 my function 作为 myfunc 处理两个数据帧 相当于 for itemA in df1 iterrows for itemB
  • 以编程方式将列名称添加到 numpy ndarray

    我正在尝试将列名称添加到 numpy ndarray 然后按名称选择列 但这不起作用 我无法判断问题是在添加名称时出现 还是在稍后尝试调用它们时出现 这是我的代码 data np genfromtxt csv file delimiter
  • 如何解码 dtype=numpy.string_ 的 numpy 数组?

    我需要使用 Python 3 解码按以下方式编码的字符串 gt gt gt s numpy asarray numpy string hello nworld gt gt gt s array b hello nworld dtype S1
  • 如何在 Keras 中使用部分输入进行训练,其余部分用于损失函数

    我是 Keras 新手 正在尝试实现神经网络机器学习模型 输入张量看起来像 X1 X2 和输出 Y 注意 X1 和 X2 是相关的 在模型中 只有 X1 将用于训练 但 X1 和 X2 都将传递给损失函数 该损失函数是 X1 X2 y pr
  • 如何使用注释和聚合在 Django 的 ORM 中执行此 GROUP BY 查询

    我真的不知道如何翻译GROUP BY and HAVING到姜戈的QuerySet annotate and QuerySet aggregate 我正在尝试将这个 SQL 查询转换为 ORM 语言 SELECT EXTRACT year
  • 如何将reportlab与Google应用程序引擎一起使用

    我无法在谷歌应用程序引擎下正确导入reportlab 根据以下guide http blog notdot net 2010 04 Generating PDFs on App Engine Python and introducing M
  • 在 Python 中,如何获取特定文件中定义的类列表?

    如果一个文件myfile py包含 class A object Some implementation class B object Some implementation 我如何定义一个方法 以便在给定的情况下myfile py 它返回
  • 与函数复合 UniqueConstraint

    一个快速的 SQLAlchemy 问题 我有一个 文档 类 其属性为 数字 和 日期 我需要确保没有重复的号码同年 是 有没有办法对 数字 年份 日期 进行UniqueConstraint 我应该使用唯一索引吗 我如何声明功能部分 SQLA
  • python 中的基本矩阵转置

    我尝试了 python 中矩阵转置的最基本方法 但是 我没有得到所需的结果 接下来是代码 A 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 print A def TS A B A for i in range len A
  • Scikit Learn - K-Means - 肘部 - 标准

    今天我想学习一些关于 K means 的知识 我已经了解该算法并且知道它是如何工作的 现在我正在寻找正确的 k 我发现肘部准则作为检测正确的 k 的方法 但我不明白如何将它与 scikit learn 一起使用 在 scikit learn
  • 如何表示类的实例与将其作为输入的类之间的关系?

    我有一堂课叫House 这个类的实例是house class House def init self height length self height height self length length def housePlan hou
  • dask allocate() 或 apply() 中的变量列名

    我有适用于pandas 但我在将其转换为使用时遇到问题dask 有一个部分解决方案here https stackoverflow com questions 32363114 how do i change rows and column
  • Melt() 函数复制数据集

    我有一个这样的表 id name doggo floofer puppo pupper 1 rowa NaN NaN NaN NaN 2 ray NaN NaN NaN NaN 3 emma NaN NaN NaN pupper 4 sop
  • 字母尺度和随机文本上的马尔可夫链

    我想使用 txt 文件中的一本书中的字母频率生成随机文本 以便每个新字符 string lowercase 取决于前一个 如何使用马尔可夫链来做到这一点 或者使用每个字母都有条件频率的 27 个数组更简单 我想使用来自的字母频率生成随机文本

随机推荐

  • winxp 远程rdp 连接 Ubuntu10.10-再次远程登陆失败 (二)

    在文章winxp 远程rdp 连接 Ubuntu10 10 一 操作完成 xff0c 并且进行第一成功登陆之后 xff0c 退出 xff08 注销 直接关闭mstsc退出按钮 xff09 远程连接之后 xff0c 重新登录出现 xff0c
  • PostGIS教程七:几何图形(Geometry)

    目录 一 介绍 二 元数据表 三 表示真实世界的对象 3 1 点 xff08 Points xff09 3 2 线串 xff08 Linestring xff09 3 3 多边形 xff08 Polygon xff09 3 4 集合 xff
  • FreeBSD下修改安装源的方法

    FreeBSD默认是从官方的源下载软件包的 xff0c 速度比较慢 xff0c 可以修改配置文件指定国内的镜像源来快速安装软件 说明 xff1a FreeBSD中安装软件一般有两种方式 xff1a xff08 一 xff09 使用pk ad
  • sqlite3_bind

    sqlite3 bind text 中绑定的指针 xff0c 在sqlite3 step 时必须存在 xff0c 不能释放 xff0c 否则会是乱码 sqlite3 bind blob中绑定的指针 xff0c 在sqlite3 step 时
  • Windows10 Clion 无法打开文件cudart.lib

    真是巨坑 xff0c 遇到这个问题 xff0c 且耗费两个小时百度 google xff0c 差点放弃换用Visual Studio xff0c 但真实原因竟然这么简单 在你的CmakeList txt中 xff0c 是不是这样添加cuda
  • cf规则介绍

    codeforces的正确打开方式 1 背景 可能很多人都久闻codeforces网站的大名 xff0c 却苦于各种各样的区域性问题或玄学问题 xff0c 没能真正地体验到cf所带来的极致魅力 而网络上关于这方面的博文太少了 xff08 至
  • 使用Buildroot + QEMU构建和运行Linux

    使用Buildroot 43 QEMU构建和运行Linux xunknown 64 2022 04 06 概述 Buildroot是一个用于为嵌入式系统构建完整的Linux系统 xff08 包括Bootloader xff0c Linux
  • openwrt 无线中继设置–固定IP+打印服务器和文件共享

    openwrt 无线中继设置 固定IP 43 打印服务器和文件共享 因为给TPLINK703N xff0c 编译16MROM成功 xff0c 固件里加入了打印服务器和SAMBA VSFTPD USB挂载等功能 xff0c 可使用有线连接上级
  • Linux 终端(TTY)

    原文 xff1a Linux 终端 TTY sparkdev 博客园 Linux 终端 TTY TTY 是 Teletype 或 Teletypewriter 的缩写 xff0c 原来是指电传打字机 xff0c 后来这种设备逐渐键盘和显示器
  • shell命令和变量//区分变量未定义和变量已定义但值为空

    转载 xff1a Shell Command Language 参考 xff1a shell How to check if a variable is set in Bash Stack Overflow 关键 xff1a 形如 para
  • 区分本地终端和ssh远程终端

    如果本地和远端服务器用户名和主机名 xff0c 终端颜色配置都一致 xff0c 通过ssh登陆服务器的时候 xff0c 在本地终端和ssh终端来回切换时 xff0c 傻傻分不清当前终端是本地终端还是ssh远程服务器 下面这个连接介绍了一种方
  • 电路仿真软件Circuit JS1修改菜单字体大小

    在线演示 xff1a https www falstad com circuit circuitjs html 下载地址 xff1a https www falstad com circuit offline circuitjs1 linu
  • Ubuntu 22.04配置samba服务器

    安装samba sudo apt install samba 可以验证一下安装结果 xff1a smbd version 创建samba用户密码 创建samba用户 xff08 可选 xff09 xff1a sudo adduser sys
  • 一个查找文件的类:它的长处在于能够搜索子目录并且是可控制的

    find file cpp Defines the entry point for the console application include 34 stdafx h 34 测试需要的头文件 include lt conio h gt
  • Clearwater IMS All-in-one环境搭建指导书

    xunknown 64 163 com 2015 01 13 一 前言 Clearwater IMS 是一个开源的 IMS 项目 提供 VoIP SIP 电话等功能 Clearwater IMS 主页 http www projectcle
  • Clearwater IMS All-in-one环境搭建指导书

    xunknown 64 163 com 2015 01 13 一 前言 Clearwater IMS 是一个开源的 IMS 项目 提供 VoIP SIP 电话等功能 Clearwater IMS 主页 http www projectcle
  • Sublime Text3注册码(亲测可用 2019-11-19)

    转自博客中的朋友的 xff0c 用于保存 适用于Sublime Text2同时也适用于Sublime Text3 1 打开本地hosts文件 Windows路径是C Windows System32 drivers etc MacOS路径是
  • H3C配置多区域OSPF实验

    一 先上拓扑 xff1a 二 实验环境 xff1a Windows 10 xff08 21H1 xff09 xff0c HCL版本 xff1a V3 0 1 xff08 华三模拟器 xff09 三 实验需求 xff1a SWA SWB SW
  • 配置mysql使用ssl连接,配置java连接mysql使用ssl

    查看mysql是否支持ssl连接 show variables like 39 ssl 39 生成服务器端 openssl genrsa 2048 gt ca key pem openssl req sha1 new x509 nodes
  • Python中的命名规范

    变量命名准则 您应当尽量使自己的变量命名含义清晰 xff0c 不要使用混乱的字母 数字 表情等意义不明的字符来命名变量一般来说 xff0c 您不应当使自己的风格频发变换 如果可能 xff0c 请将整个项目保持统一风格此文章根据本人习惯与编码