python常用知识

多线程,多进程,协程
进程池

from  multiprocessing import Process,Pool
import time
 
def Foo(i):
    time.sleep(2)
    return i+100
 
def Bar(arg):
    print('-->exec done:',arg)
 
pool = Pool(5)  #允许进程池同时放入5个进程
 
for i in range(10):
    pool.apply_async(func=Foo, args=(i,),callback=Bar)  
    #func子进程执行完后,才会执行callback,否则callback不执行(而且callback是由父进程来执行了)
    # apply是阻塞,apply_async 非阻塞
    #pool.apply(func=Foo, args=(i,))
 
print('end')
pool.close()
pool.join() #主进程等待所有子进程执行完毕。必须在close()或terminate()之后。

协程

def consumer(name):
    print('开始吃包子...')
    while True:
        print('\033[31;1m[consumer]%s需要包子\033[0m'%name)
        bone = yield   #接收send发送的数据
        print('\033[31;1m[%s]吃了%s个包子\033[0m'%(name,bone))
def producer(obj1):
    obj1.send(None)   #必须先发送None
    for i in range(3):
        print('\033[32;1m[producer]\033[0m正在做%s个包子'%i)
        obj1.send(i)


if __name__ == '__main__':
    con1 = consumer('消费者A')  #创建消费者对象
    producer(con1)

字典

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

# 增加值,读值
dict['ni']='test'

#  删除值
del dict['ni']

# 删除全部
dict.clear()

sorted(dict.items(),key = lambda x:x[1],reverse = True)

列表

names = ['a','b','c','d']
name.append('e')
name.remove()
name.sort()
name[]

# 列表生成式
[x * x for x in range(1, 11)]

函数

lambada x,y:x+y

文件操作

with open("filename","w") as f:
        f.write(str)

你可能感兴趣的:(python常用知识)