1.什么是lambda函数?他有什么好处?另外python在函数式编程方面提供了些什么函数和语法? lambda函数就是可以接受任意多个参数(包括可选参数)并且返回单个表达式值得函数 好处: 1.lambda函数比较轻便,即用即扔,适合完成只在一处使用的简单功能 2.匿名函数,一般用来给filter,map这样的函数式编程服务 3.作为回调函数,传递给某些应用,比如消息处理 2.什么是装饰器?写一个装饰器,可以打印输出方法执行时长的信息。 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 我们通过下面的实例来演示装饰器模式的用法。其中,我们将把一个形状装饰上不同的颜色,同时又不改变形状类。 import time def timer(func): def decor(*args): start_time = time.time() func(*args) end_time = time.time() d_time = end_time - start_time print("run the func use : ", d_time) return decor @timer #printSth = timer(printSth) -> printSth = decor def printSth(str, count): for i in range(count): print("%d hello,%s!"%(i,str)) printSth("world", 1000000)#run the func use : 4.414000034332275 3.什么是进程,线程,协程,说一说python对他们的支持? 多进程:进程之间是独立的, python的线程是用的操作系统的原生线程、python的进程也是用的操作系统的原生进程。 原生进程是由操作系统去维护的,python只是通过C代码库去起了一个进程,真正进程的管理还是通过操作系统去完成的。 操作系统的进程管理是没有全局解释器锁的,进程只是是独立的,根本不需要锁的概念。 import multiprocessing import threading import time def thread_run(i,n): print("在进程%s的线程%s"%(i,n)) def run(i): print("进程:%s "%i) time.sleep(1) for n in range(2): t = threading.Thread(target=thread_run,args=(i,n)) t.start() if __name__ == '__main__': # 这个必须要有 for i in range(4): p = multiprocessing.Process(target=run,args=(i,)) p.start() from multiprocessing import Process import os def info(title): # 打印进程信息 print(title) print('module name:', __name__) # 模块名 print('parent process:', os.getppid()) # 父进程ID print('process id:', os.getpid()) # 进程ID print(" ") def f(name): info('