开发者社区> 墨持alvin> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Python3中关于下划线变量和命名的总结

简介: 变量 #!-*-coding:utf-8-*- #__author__ = 'ecaoyng' # # 变量 #_xxx,单下划线开头的变量,标明是一个受保护(protected)的变量,原则上不允许直接访问,但外部类还是可以访问到这个变量。
+关注继续查看

变量

#!-*-coding:utf-8-*-
#__author__ = 'ecaoyng'


# 

# 变量
#_xxx,单下划线开头的变量,标明是一个受保护(protected)的变量,原则上不允许直接访问,但外部类还是可以访问到这个变量。
#这只是程序员之间的一个约定,用于警告说明这是一个私有变量,外部类不要去访问它。

class Student:
    def __init__(self, name, age):
        self._name = name
        self.age=age

stu=Student('Alvin','30')
#当要输入_name时,pycharm不会进行_name的提示
print(stu._name)
#当要显示age时,pycharm会进行age的提示
print(stu.age)
#output:
#Alvin
#30



# __xxx,双下划线开头的,表示的是私有类型(private)的变量。
# 只能是允许这个类本身进行访问了, 连子类也不可以.
# 用于命名一个类属性(类变量),调用时名字被改变
#(在类Student内部,__name变成_Student__name,如 self._Student__name)
# 双下划线开头的实例变量是不是一定不能从外部访问呢?其实也不是。仍然可以通过_Student__name来访问__name变量:
class Person:
    def __init__(self, name):
        self.__name=name

per=Person('Young')
print(per._Person__name)
#output: Young



#__xxx__,以双下划线开头,并且以双下划线结尾的,是内置变量.
# 内置变量是可以直接访问的,不是 private 变量,如__init__,__import__或是__file__。
# 所以,不要自己定义这类变量


#xxx_,单下划线结尾的变量一般只是为了避免与 Python 关键字的命名冲突

#USER_CONSTANT,大写加下划线,对于不会发生改变的全局变量,使用大写加下划线

函数



#函数
#总体而言应该使用,小写和下划线。但有些比较老的库使用的是混合大小写,即首单词小写,之后每个单词第一个字母大写,其余小写。
# 但现在,小写和下划线已成为规范

#私有方法 : 小写和一个前导下划线
#这里和私有变量一样,并不是真正的私有访问权限。
# 同时也应该注意一般函数不要使用两个前导下划线(当遇到两个前导下划线时,Python 的名称改编特性将发挥作用)。特殊函数后面会提及。
class privateC:
    def _secrete(self):
        print('Don\'t test me')
priC=privateC()
priC._secrete()

#特殊方法 : 小写和两个前导下划线,两个后置下划线
#这种风格只应用于特殊函数,比如操作符重载等。
def __add__(self, other):
    return int.__add__(other)

#函数参数 : 小写和下划线,缺省值等号两边无空格
def connect(self, user=None):
    self._user = user


#类
#类总是使用驼峰格式命名,即所有单词首字母大写其余字母小写。
# 类名应该简明,精确,并足以从中理解类所完成的工作。
# 常见的一个方法是使用表示其类型或者特性的后缀,例如:SQLEngine ,MimeTypes
#对于基类而言,可以使用一个 Base 或者 Abstract 前缀


# 不要滥用 *args 和 **kwargs,可能会破坏函数的健壮性

推荐


#推荐
#一行列数 : PEP 8 规定为 79 列,这有些苛刻了。根据自己的情况,比如不要超过满屏时编辑器的显示列数。这样就可以在不动水平游标的情况下,方便的查看代码。
#一个函数 : 不要超过 30 行代码, 即可显示在一个屏幕类,可以不使用垂直游标即可看到整个函数。
#一个类 : 不要超过 200 行代码,不要有超过 10 个方法。
#一个模块 不要超过 500 行。
# easy_install pep8
# pep8 -r --ignoire E501 Test.py
# 这个命令行的意思是,重复打出错误,并且忽略 501 错误(代码超过 79 行)。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
图解爬虫,用几个最简单的例子带你入门Python爬虫
爬虫一直是Python的一大应用场景,差不多每门语言都可以写爬虫,但是程序员们却独爱Python。之所以偏爱Python就是因为她简洁的语法,我们使用Python可以很简单的写出一个爬虫程序。本篇博客将以Python语言,用几个非常简单的例子带大家入门Python爬虫。
60 0
python爬虫实战实现XPath和lxml | python爬虫实战之六
本节介绍了用XPath类似于路径的设计遍历或者查询其中的某些元素或者元素的属性。
1064 0
Python爬虫实战示例-51job和豆瓣电影
2018年7月16日笔记 1.conda常用命令 1.1 列出当前环境的所有库 命令:conda list 在cmd中运行命令如下图所示: 图片.png-36.
1356 0
如何开始写你的第一个python脚本——简单爬虫入门!
好多朋友在入门python的时候都是以爬虫入手,而网络爬虫是近几年比较流行的概念,特别是在大数据分析热门起来以后,学习网络爬虫的人越来越多,哦对,现在叫数据挖掘了! 其实,一般的爬虫具有2个功能:取数据和存数据!好像说了句废话。
1430 0
Python爬虫入门一之综述
大家好哈,最近博主在学习Python,学习期间也遇到一些问题,获得了一些经验,在此将自己的学习系统地整理下来,如果大家有兴趣学习爬虫的话,可以将这些文章作为参考,也欢迎大家一共分享学习经验。 Python版本:2.7,Python 3请另寻其他博文。 首先爬虫是什么? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓
3170 0
+关注
墨持alvin
架构,数据库相关专家
80
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载