关注我的微信公众号:pythonislover,领取python,大数据,SQL优化相关视频资料!~
Python大数据与SQL优化笔 QQ群:771686295
1. global 修改全局变量
a=5
def change():
a=3
change()
print(a) # 5
######################################
a=5
def change():
global a
a=3
change()
print(a) # 3
2. Python GIL (来源于网络,感觉解释的比较好 程序IT圈 )
GIL 是python的全局解释器锁,同一进程中假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程内的其他线程无法运行,等该线程运行完后其他线程才能运行。如果线程运行过程中遇到耗时操作,则解释器锁解开,使其他线程运行。所以在多线程中,线程的运行仍是有先后顺序的,并不是同时进行。
多进程中因为每个进程都能被系统分配资源,相当于每个进程有了一个python解释器,所以多进程可以实现多个进程的同时运行,缺点是进程系统资源开销大
3.assert()方法,断言成功,则程序继续执行,断言失败,则程序报错
a=7
assert a>5
print('asset go on!~')
assert a>9
print('asset failed!~')
asset go on!~
File "C:/Users/Augus/PycharmProjects/mystudy/knowlage.py", line 5, in <module>
assert a>9
AssertionError
4.map函数,这个函数的意思就是将function应用于iterable的每一个元素,结果以map的形式返回。常用lambda一起使用的
格式:map(function, iterable, …)
function: 自定义函数,内置函数等
iterable:可迭代对象,如列表,元组,字符串,并且map后面可以接多个iterable对象
def maptest(a):
return a*a
print(list(map(maptest,[1,2,3]))) #自定义函数
[1, 4, 9]
a=list(map(str,'python')) # 内置函数
print(a)
['p','y','t','h','o','n']
lambda函数:
print(list(map(lambda x: x ** 2, [1, 2, 3,]))) #lambda x: x ** 2相当于上面的自定义函数
[1, 4, 9]
5.Glob()查找文件
import glob #查询一类文件
files = glob.glob('*.py')
print(files)
['knowlage.py', 'log.py', 'slice.py']
类文件
import glob,itertools
# files = glob.glob('*.py')
# print(files)
def get_files_miltiple(*args):
return itertools.chain.from_iterable(glob.glob(pat) for pat in args)
for file in get_files_miltiple("*.py","*.log"):
print(file)