今天是2019.08.20,学python已经是第五天啦,学习真的很苦啊!
在使用装饰器的情况下,无论你输入什么验证码都返回验证码错误
如果不使用,该正确就打印正确
1
import random
def deco(func):
def warp(n1,n2):
n1=100000
return func(n1,n2)
return warp
@deco
def A(n1,n2):
if n1 ==n2:
print(‘验证码正确’)
else:
print(‘验证码不正确’)
num=random.randrange(1000,9999)
print(‘验证码是:%d’%num)
num2 =int (input(’>>’))
A(num,num2)
2
import random
def deco2(parms):
def deco(func):
def warp(*args,**kwargs):
if parms:
kwargs[‘n1’]=-1
return func(*args,**kwargs)
return warp
return deco
@deco2(False)
def A(n1,n2):
if n1 ==n2:
print(‘验证码正确’)
else:
print(‘验证码不正确’)
num=random.randrange(1000,9999)
print(‘验证码是:%d’%num)
num2 =int (input(’>>’))
A(num,num2)
装饰器是建立在闭包的前提上的,闭包就是将函数当做参数传入另一个函数
总之 ,装饰器就是不改变原先函数代码的情况下,给原先的函数添加功能
模拟进入网页
import time
TIME1=0
TIME2=0
def 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_ip
def A(ip):
print(‘进入网页成功’)
#模拟请求
for _in range(50):
ip='127.0.0.1'
TIME1=time.time()
A(ip)
TIME2=time.time()
time.sleep(1)
进程和线程
import multiprocessing
def A():
print(‘hello’)
if name==“main”:
#创建进程
p=multiprocessing.Process(target=A,args=())
p.start()#启动进程
print(‘Over’)