补充 函数的生成器
Yield:可将函数变成一个迭代器(即生成器)
Try……except:尝试执行try中的代码,若有错,则被except捕获,但整个程序不会崩溃。
1.不定长参数
传参方式:位置传参、带参数名的传参
1)args (位置传参)
def h(*args):
print(args)
h(1,2,3,4,5,6)
注:输出为元组
2)**kwargs (带参数名的传参)
def h(**kwargs):
print(kwargs)
h(a=1,b=2,c=3)
注:输出为字典
3)不定长参数
def h(*args,**kwargs):
print(args)
print(kwargs)
h(1,2,3,a=1,b=2,c=3)
4)装饰器带参数
不定长参数与装饰器结合使用(重要的参数要用带参数名的来进行传参,从而让**kwargs捕获):
2.线程和进程
multiprocessing是Python提供的一个跨平台的多进程模块,通过它可以很方便地编写多进程程序,在不同的平台(Unix/Linux, Windows)都可以执行。
从上面的例子可以看出,如果程序中的代码只能按顺序一点点的往下执行,那么即使执行两个毫不相关的下载任务,也需要先等待一个文件下载完成后才能开始下一个下载任务,很显然这并不合理也没有效率。
下面
2)多进程的库