一:python编码规范:
1、逢冒必缩:缩进4个空格或一个tab键
2、行长80:防止单行逻辑过于复杂
3、不使用from xxx import *
4、单行不要import 多个包,用不到的包不用import
5、空格使用:二元操作符前后各一个空格,冒号、逗号、分号后面都加一个空格
6、添加空行:函数间、函数内、文件结尾。
7、注释:
(1)忌逐行添加注释或者没有一个注释。
(2)行内注释
(3)块注释
(4)引入外来算法或者配置时需在注释中添加源链接,标明出处
8、命名:
(1)不用单字母的变量名
(2)包名、模块名、函数名、方法名全部使用小写,单词用下划线连接
(3)类名、异常名使用驼峰式命名
(4)全局变量劲量使用大写
二:
1、*与**的区别:*传递的是元组,**传递的是字典
def foo(*args, **kwargs):
pass
2、python的赋值与引用:== \ is
==:判断的是值,is:判断的是内存地址(对象的id)
3、copy与deepcopy的区别:copy:只拷贝表层元素,而deepcopy在内存中重新创建所有子元素
4、迭代器与生成器:
iter :是返回迭代器本身
next :是返回容器中的下一个值
generator:生成器是一种特殊的迭代器,不需要自定义__iter__与__next__
注:
(1)生成器函数(yield)
(2)迭代器与生成器的好处:节省内存,惰性求值
5、装饰器:
(最简装饰器)
def deco(func):
def wrap(*args, **kwargs):
return func(*args, **kwargs)
return wrap
@deco
def foo(a, b):
return a ** b
6、函数闭包:引用了自由变量的函数
def deco(func):
def