Python 类型错误:';非类型';对象在装饰程序中不可调用

Python 类型错误:';非类型';对象在装饰程序中不可调用,python,python-decorators,Python,Python Decorators,您的return包装器有一个额外的缩进,使得login\u成为必需()returnNone。固定如下(和): 缩进问题,需要登录时不返回任何内容。一旦你们解决了这个问题,那个么包装器就不会了。 #decorators in python users={"ravneet":"elitebook","singh":"punjab"} def login_required(func): def wrapper(username, password, *args, **kwargs):

您的
return包装器
有一个额外的缩进,使得
login\u成为必需()
return
None
。固定如下(和):


缩进问题,需要登录时不返回任何内容。一旦你们解决了这个问题,那个么包装器就不会了。
#decorators in python
users={"ravneet":"elitebook","singh":"punjab"}

def login_required(func):
    def wrapper(username, password, *args, **kwargs):
        if username in users and users[username]==password:
            func(*args,**kwargs)
        else:
            print("not authenticated")
        return wrapper

@login_required
def add(a,b):
    print("a+b: ",a+b)

add("ravneet","elitebook",2,3)
def login_required(func):

    def wrapper(username, password, *args, **kwargs):

        if username in users and users[username]==password:

            func(*args,**kwargs)
        else:

            print("not authenticated")
    return wrapper

@login_required    
def add(a,b):    
    print("a+b: ",a+b)

add("ravneet","elitebook",2,3)