py中表示字符串可以是单引号和双引号,但是建议最好使用单引号.
一个函数文档说明(__doc__)是用""" 3个双引号,结束也是 在他们之间的就是doc string
字典输入时候不一定按照你定义时候的顺序.记住
当全局变量和参数名字一样时候但是非要在函数内使用全局而不被局部变量覆盖那么可以用globals但是一般最好别这么起一样的名字
当你把X, Y 都绑定到一个列表的时候你修改X 也就是修改了Y 但是你删除了X , Y 依然存在.请记住这点
copy()是浅复制,你复制过来后你对复制的执行了原地修改比如remove() 这样依然会影响到原来的,避免这点请使用deepcopy()
当在PY中比如打开文件的路径啊,re表达式中的\b边界限制啊.这些带有转义字符的时候建议你最好用原始字符串比如open(r'c:/asd.txt')
请注意 a, b, *c = (2, 3, 5, 6) 解包一个元祖后c 是一个list 破坏了元祖特性使用时后请注意
查看一个对象类型使用type() 经常使用help()
当子类继承基类的时候, 子类要使用基类的方法的时候请在子类开始的时候显示的调用基类的构造方法
pop() 内置方法是弹出最后一个元素 并且返回这个元素的值 注意是值 和其他不同比如remove()
慎用 and or 比如 1 and a or b 当a是假的时候不会按照你期望的工作, 想这么玩要把他们变成列表的第一个值
在PY3.X中已经不需要在类的开始写 __metaclass__ = type
yield 返回的是一个生成器对象.而不是对象 记住 生成器对象可以调用next()
多使用解析而不是循环
类中的方法可以实现私有在方法名前面加__
class priv:
def __inner(self): #方法前加__
print("i am private")
但是注意实际上他和C++的私有不同是假的 类的外名依然可以用特殊的办法访问到
s._priv__inner() 但是建议最好别这么做.破坏了封装的意图
子类显示的调用基类的构造方法在PY3.X中可以使用super().__init__()