Python变量、方法、类的命名规则

1. 变量命名总结:
- 1.单下划线开头变量:protected
- 2.双下划线开头变量:private
- 3.双下划线开头,双下划线结尾:系统内置变量
2. 函数命名总结:
- 1.私有方法:小写和一个前导下划线
- 2.特殊方法(魔术方法):小写和两个前导下划线,两个后置下划线
- 3.函数参数:小写和下划线,缺省值等号两边无空格
3. 类名称命名:
- 类总是使用驼峰格式命名,即所有单词首字母大写其余字母小写。
#!/usr/bin/env python
# -*- coding: utf-8 -*- """
__Title__ = '下划线变量与命名'
__Author__ = 'Zhangyf'
__Author_email__ ='hpuyanfeng@126.com'
__Time__ = '2018/1/22'
""" # 变量命名总结:
# 1.单下划线开头变量:protected
# 2.双下划线开头变量:private
# 3.双下划线开头,双下划线结尾:系统内置变量 """
单下划线开头变量
_xxx,单下划线开头的变量,标明是一个受保护(protected)的变量,原则上不允许直接访问,但外部类还是可以访问到这个变量。
这只是程序员之间的一个约定,用于警告说明这是一个私有变量,外部类不要去访问它。
print(stu._name) 当要输入_name时,pycharm不会进行_name的提示
print(stu.age) 当要显示age时,pycharm会进行age的提示 """ class Student:
def __init__(self, name, sex):
self._name = name
self.sex = sex stu = Student('zyf', 'Male')
print(stu._name) # 单下划线protected的变量,原则上不允许直接访问 输出:zyf
print(stu.sex) # age可以直接访问 输出:Male """
双下划线开头
__xxx,双下划线开头的,表示的是私有类型(private)的变量。
只能是允许这个类本身进行访问了, 连子类也不可以.
用于命名一个类属性(类变量),调用时名字被改变
(在类Student内部,__name变成_Student__name,如 self._Student__name)
双下划线开头的实例变量是不是一定不能从外部访问呢?其实也不是。仍然可以通过_Student__name来访问__name变量:
""" class Person:
def __init__(self, name):
self.__name = name per = Person('zyf2')
print(per._Person__name) # 输出zyf2 但是无法直接访问__name """
双下划线开头,并且以双下划线结尾
__xxx__,以双下划线开头,并且以双下划线结尾的,是内置变量.
内置变量是可以直接访问的,不是 private 变量,如__init__,__import__或是__file__。
★不要自己定义这类变量
xxx_,单下划线结尾的变量一般只是为了避免与 Python 关键字的命名冲突
USER_CONSTANT,大写加下划线,对于不会发生改变的全局变量,使用大写加下划线
""" # 函数命名总结:
# 1.私有方法:小写和一个前导下划线
# 2.特殊方法(魔术方法):小写和两个前导下划线,两个后置下划线
# 3.函数参数:小写和下划线,缺省值等号两边无空格 """
函数
总体而言应该使用,小写和下划线 私有方法 : 小写和一个前导下划线
这里和私有变量一样,并不是真正的私有访问权限。
同时也应该注意一般函数不要使用两个前导下划线(当遇到两个前导下划线时,Python 的名称改编特性将发挥作用)。特殊函数后面会提及。 #特殊方法 : 小写和两个前导下划线,两个后置下划线
#这种风格只应用于特殊函数,比如操作符重载等。 #函数参数 : 小写和下划线,缺省值等号两边无空格 """ # 私有方法
class PrivateCase:
@staticmethod
def _secrete():
print(r"Don't test me") priC = PrivateCase()
priC._secrete() # _secrete为protected member # 特殊方法(魔术方法)
def __add__(self, other):
return int.__add__(other) # 函数参数
def connect(self, user=None):
self._user = user """
★类名称命名:
类总是使用驼峰格式命名,即所有单词首字母大写其余字母小写。
类名应该简明,精确,并足以从中理解类所完成的工作。
常见的一个方法是使用表示其类型或者特性的后缀,例如:SQLEngine ,MimeTypes
对于基类而言,可以使用一个 Base 或者 Abstract 前缀
不要滥用 *args 和 **kwargs,可能会破坏函数的健壮性
"""
---------------------
来源:https://blog.csdn.net/feikon2/article/details/79126774
Python变量、方法、类的命名规则的更多相关文章
- 详解 Python 中的下划线命名规则
在 python 中,下划线命名规则往往令初学者相当 疑惑:单下划线.双下划线.双下划线还分前后……那它们的作用与使用场景 到底有何区别呢?今天 就来聊聊这个话题. 1.单下划线(_) 通常情况下,单 ...
- JAVA基础篇NO1--环境变量的配置及命名规则
标签(空格分隔): java基础 一:计算机概述 计算机:硬件和软件 硬件:控制器 运算器 存储器 输入和输出设备 存储器:外存(硬盘) 内存 软件:系统软件 应用软件 系统软件:wi ...
- Dart 变量、常量和命名规则
/* Dart 变量: dart是一个强大的脚本类语言,可以不预先定义变量类型 ,自动会类型推导 dart中定义变量可以通过var关键字可以通过类型来申明变量 如: var str='this is ...
- Python的内存管理、命名规则、3个特性讲解
理解变量: 变:现实世界中的状态是会发生改变的 量:衡量/记录现实世界中的状态,让计算机能够像人一样去识别世间万物(例如:一个人的身高.体重等这些信息) 为什么要变量: 程序执行的本质就是一系列状态的 ...
- static变量 方法 类 和final
static变量:声明为static的变量实质上就是全局变量.当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量.静态变量与静态方法类似.所有此类实例共 ...
- [No000064]python 变量命名规范
python源码和其他一些书籍,命名各种个性,没有一个比较统一的命名规范.于是总结了一些,供参考. 模块名: 模块应该使用尽可能短的.全小写命名,可以在模块命名时使用下划线以增强可读性.同样包的命名也 ...
- python 变量命名规范
python源码和其他一些书籍,命名各种个性,没有一个比较统一的命名规范.于是总结了一些,供参考. 模块名: 模块应该使用尽可能短的.全小写命名,可以在模块命名时使用下划线以增强可读性.同样包的命名也 ...
- 小猪猪逆袭成博士之C++基础篇(一)数据精度、强制类型转换、变量命名规则
小猪猪逆袭成博士之C++基础篇(一) 关键词: 数据精度.强制类型转换.变量命名规则 综述: 1.大多数编程语言通过两种方式来进一步补充其特征:一是赋予程序员自定义数据类型的权利(C++中的类):二是 ...
- C#基础_变量的命名规则
变量: 1.作用 :可以让我们在计算机中存储数据 2.语法:变量类型 变量名=赋值: 3.常用的数据类型: int 整数类型 取值范围:最大2147483647;最小-214748364 ...
随机推荐
- 第二阶段:4.商业需求文档MRD:3.PRD-页面结构图
这也是功能结构以及优先级 这是页面层级 页面结构图 再细分某一个频道或者子页面 层层细分 用mind做的页面结构图 里面也包含了功能
- 第二阶段:2.商业需求文档MRD:3.MRD-目标用户分析
以上是对目标市场的分析! 用户描述是定性.市场统计是定量.用用户分类模型去剖析用户分类. 例子.做百度推广时候的用户分析.不同角色的关注点不同.三个情景:广告售卖,广告投放,分析评估. 用户的使用习惯 ...
- 聊聊最近撸Spring源码感悟
一.前言 最近一段时间撸了Spring IOC.AOP.Transactional源码,这篇文章聊聊我写了哪些小玩意,这可能就是阅读源码以后最大收获.希望大家在里面能学习一些什么东西吧: 二. ...
- JVM内存结构探秘及编码实战
了解JVM内存结构的目的 在Java的开发过程中,因为有JVM自动内存管理机制,不再需要像在C.C++开发那样手动释放对象的内存空间,不容易出现内存泄漏和内存溢出的问题.但是,正是由于把内存管理的权利 ...
- Appium+Pytest实现app并发测试
前言 这个功能已经写完很长时间了,一直没有发出来,今天先把代码发出来吧,有一些代码是参考网上写的,具体的代码说明今天暂时先不发了,代码解释的太详细还得我花点时间^_^, 毕竟想让每个人都能看明白也不容 ...
- DEVOPS技术实践_20:串联多个job执行
在jenkins可能会有战役中场景,就是在一个job执行完之后,把这个执行结果作为另一个job的执行条件 比如A执行完,如果A执行成功,则执行B,如果失败则执行C 1 前期准备 A任务 import ...
- 「CF86D」Powerful array 解题报告
题面 给出一个\(n\)个数组成的数列\(a\),有\(t\)次询问,每次询问为一个\([l,r]\)的区间,求区间内每种数字出现次数的平方×数字的值 的和 思路: 直接上莫队咯 然后就T了 没学过莫 ...
- 关于Itext 报错-java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1Encodable
如果我们在用iText 做为java 为PDF 文档加水印的时候 报如下异常 java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1Enc ...
- 7个效果震憾的HTML5应用组件
在HTML5的世界里,任何文本.图像都可以变得令人难以想象,很多HTML5应用也都已经随着浏览器的升级而变得运行飞速,而且兼容性也越来越好.下面为大家介绍7款效果震憾的HTML5应用组件,HTML5是 ...
- 微信小程序点击图片放大
WXML: <view class='imgList'> <view class='imgList-li' wx:for='{{imgArr}}'> <image cla ...