2 包名,模块名,函数名,方法名全部使用小写,单词之间用下

5.命名:
(1)除非在 函数中,否则不要用单字母的变量名 。
(2)包名,模块名,函数名,方法名全部使用小写,单词之间用下划线连接 。
(3)全局变量尽量使用大写,一组同类型的全局变量要加统一的前缀,单词用下划线连接 。和**的用法:
def foo(*args,**):
pass
def foo(x,y,z,a,b):print(x)print(y)print(z)lst =[1, 2, 3]dic ={'a': 22, 'b': 77}foo(*lst, **dic
的赋值和引用
(1)==, is: ==判断的是值,is判断的是内存地址(即对象的id0
(2)小整数对象:[-5,256]

2  包名,模块名,函数名,方法名全部使用小写,单词之间用下

文章插图
二. 最简装饰器
三.多进程
def deco(func): def wrap(*args, **kwargs): return func(*args, **kwargs)return wrap@deco def foo(a, b):return a ** b
1.函数闭包:引用了自由变量的函数即是一个闭包 。
def foo():l = []def bar(i):l.append(i)return lreturn barf1 = foo()f2 = foo()
三. 练习题
装饰器练习题
(1)登陆失败
def deco(func):print(func)print('ddd')def warp():print('登陆失败')return func()return warp@decodef A():print('ww')@decodef B():print('www')A()B()
2.输入两个数字,装时期的作用是求这两个数字的和
本函数的作用是打印这两个数字的和
def deco(func):def warp(n,n1):sum_=n+n1return func(sum_,n1)return warp@decodef A(name,name2):print(name)A(10,20)
3.在使用装饰器的情况下,无论你输入什么验证码都返回验证码错误,如果不使用,该正确就打印正确 。
import randomdef deco2(parms):def deco (func):def warp(*args,**kwargs):if parms:kwargs['n1'] =-1return func(*args,**kwargs)return warpreturn deco@deco2(True)def A(n1,n2):if n1 == n2:print('验证码正确:')else:print('验证码醋无:')num=random.randrange(1000,9999)print('验证码是:%d' % num)num2 =int(input('>>'))A(n1=num,n2=num2)
4.多进程题
import multiprocessingimport osdef A(name):print(os.getpid())print(name)if __name__ =="__main__":p1 = multiprocessing.Process(target=A,args=('Joker',))p2 = multiprocessing.Process(target=A,args=('Joker1',))p1.start()p2.start()p1.join()p2.join()print('ok')
5.检测某个时间段内(5s)ip访问的次数,如果ip的访问次数超过10次,则返回404
import timeTIME1 = 0TIME2 = 0def check_ip(func):def warp(*args,**kwargs):if round(abs(TIME2 - TIME1),3)<0.5:print('404')else:return func(*args,**kwargs)return warp@check_ipdef A(ip):print('进入网页成功')#模拟请求for i in range(50):ip ='127.0.0.1'TIME1 =time.time()A(ip)TIME2 =time.time()time.sleep(1)
【2包名,模块名,函数名,方法名全部使用小写,单词之间用下】import jsonimport multiprocessingimport requestsdef text (path):list1 = []list2 = []with open(path,mode='r') as f:res = f.readlines()[0].strip('\n').split('}')for json_ in res[:-1]:_json = json_ + '}'_json = json.loads(_json)song_play_url = _json['song_play_url']if song_play_url is not None:list1.append(song_play_url)song_name = _json['song_name']list2.append(song_name)return list1 , list2song_url,song_name = text('F:\\vscode\\top_500.txt')def A(song_url,song_name):i = -1for path in song_url:i += 1response = requests.get(path)mp3_ = response.contentwith open('D:\\music\\wp\\'+song_name[i]+'.mp3',mode='wb') as f:f.write(mp3_)if __name__ == "__main__":x = int(len(song_url)/2)p1 = multiprocessing.Process(target = A,args=(song_url[0:x],song_name[0:x]))p2 = multiprocessing.Process(target = A,args=(song_url[x:],song_name[x:]))p1.start()p2.start()p1.join()p2.join()