基础
String字符串相关
index()方法 检测字符串中是否包含子字符串 str.index(str, beg=0, end=len(string))
find()方法 找不到会返回-1
index() 找不到会抛异常 ValueError: substring not found
','.join
startswith()
endswith()
异常处理
try:
xxx
except Exception as ex:
xxx
finally:
xxx
# 抛出异常
rasie MyException('Error')
类方法/静态方法
函数集合
zip(list1, list2)
双重for
[] 是 list() 的 3倍
import timeit
timeit.timeit('[]', number=10**7)
__new__ / __init__
函数
因为逗号 表示一个元组,后面 kwargs 参数 为空
对于字符串的格式化
时间
格式化
%y 两位数的年份
%Y 四位数的年份
%m 月份
%d 月份内的一天
%H 24小时制小时数
%I 12小时制小时数
%M 分钟数
%S 秒
%p 本地A.M / P.M的等价符
%Z 当前时区的名称
正则
函数的位置参数
内置函数
判断子类与父类
issubclass(SonClass, FatherClass)
判断一个对象是否是一个类的实例
isinstance(s, class)
对对象属性的访问
文件目录相关
dirs = os.listdir(path)
// py
import py
// 当前目录
current = py.path.local()
// 路径下所有parts
dirs = current.dirpath().realpath().parts() //从最短路径到最长 e.g: <class 'list'>: [local('C:\\', local('C:\\Users'),....]
dirs.sort(reverse=True) // 反转排序
// os.walk
os.wark(top, topdown=True, οnerrοr=None, followlinks=False)
得到1个三元tupple(dirpath, dirnames, filenames)
dirpath: str
dirnames: list
filenames: list
要得到全路径,需要使用os.path.join(dirname, filename)
AOP和装饰器
在运行时,编译时,类和方法加载时,动态的将代码切入到类的指定方法,指定位置上的编程思想就是面向切面的编程
切面:切入到指定类指定方法的代码片段
切入点:切入到哪些类,哪些方法
优点: 对原有代码毫无入侵性
装饰器
经常被用于有切面需求的场景,比较经典的有插入日志,性能测试,事务处理
作用:就是为已经存在的对象添加额外的功能。
这里就得提到 Python函数的概念:函数即对象
1.可以赋值给一个变量
2.可以在其他函数里定义
3.可以返回给另一个函数
4.可以作为参数传递
用法
@decorator 简写
装饰器里传入参数
只有去真正调用 decorated_function() 后面有() 才会去输出装饰器里的方法
Python自身提供的几个装饰器: 像property, staticmethod
类装饰器
Note: 使用 __call__ (不是__callable__)
Example
运行时间统计
错误重试或者超时重试
单例模式
1修改__new__(cls)静态方法
生成器
列表的容量有限,创建了一个100万个元素的列表,仅访问前面几个元素,造成空间浪费
如果列表元素可以按照某种算法推算出来,在Python种,这种一边循环一边计算的机制,称为生成器 Generator
使用场景:
1)当我们需要一个公用的,按需生成的数据
2)某个事件执行一部分,另一部分在某个事件发生后再执行下一部分,实现异步
注意事项: generator函数在允许使用return,但return后不允许有返回值
是可迭代对象
g = (x * x for x in range(10))
for n in g:
print(n)
定义生成器的另一种写法 就是函数中包含yield关键字
Example
生成器表达式 把 [] 换成 ()
高级应用
lambda 关键字,
语法: lambda arguments: expression
1不需要return 返回任何值
2不要忘记优先考虑列表推导式
numbers = [2, 1, 3, -3]
[x for x in numbers if x % 2]
list(filter(lambda x: x%2, numbers)) # 0 为false , [1, 3, -3]
filter, map, reduce为内置函数
Example
使用setup.py 打包库
setuptools
setup.py 文件
find_packages
数据文件