属性和方法命名总结
1 _xxx
:保护成员,不能用from module import *
导入,只有类对象和子类对象能访问这些成员。
2 __xxx__
:系统定义的特殊成员
3 __xxx
: 类中的私有成员,只有类对象自己能访问,子类对象也不能访问。(但,在类外部可以通过对象名. _类名__xxx
这种特殊方式访问。Python不存在严格意义的私有成员)
再次强调,方法和属性都遵循上面的规则。
类编码风格
1 类名首字母大写,多个单词之间采用驼峰原则。
2 实例名、模块名采用小写,多个单词之间采用下划线隔开
3 每个类,应紧跟“文档字符串”,说明这个类的作用
4 可以用空行组织代码,但不能滥用。在类中,使用一个空行隔开方法;模块中,使用两个空行隔开多个类
关于None和判断的总结
1 与C和JAVA不同,python中是没有NULL
的,取而代之的是None
。
2 None
是一个特殊的常量,表示变量没有指向任何对象。
3 在Python中, None
本身实际上也是对象,有自己的类型NoneType
。
4 你可以将None
赋值给任何变量,但我们不能创建NoneType
类型的对象
5 None
不是False
,None
不是0,None
不是空字符串。None
和任何其他的数据类型比较永远返回False
。
示例
obj = None
obj2 = None
print(type(None))
print(id(None))
print(id(obj))
print(id(obj2))
# none和其他类型比较
a = None
if a is None and a==None:
print("a是None") #会执行
if a==False or a==0:
print("None不等于False") #不会被打印
输出结果
<class ‘NoneType’>
140717958924280
140717958924280
140717958924280
a是None
空列表、空字符串、0之间的比较
1 if
语句判断时,空列表[]
、空字典{}
、空元组()
、0
等一系列代表空和无的对象会被转换成False
a=[];b=();c={};d="";e=0;f=None
if (not a) and (not b) and (not c) and (not d) and (not e) and (not f):
print("if判断时,空列表[]、空字符串、0、None等代表空和无的对象会被转换成False")
输出结果:
if判断时,空列表[]、空字符串、0、None等代表空和无的对象会被转换成False
2 ==
和is
判断时,空列表、空字符串不会自动转成False
a=[];b=();c={};d="";e=0;
if (a==False or d==False):
print("==时,空列表、空字符串不是False!") #不会执行
if(e==False):
print("==时,0会转成False")