>  기사  >  백엔드 개발  >  Python의 데코레이터에 대해 알아보기

Python의 데코레이터에 대해 알아보기

黄舟
黄舟원래의
2017-07-27 16:07:301362검색

정의: 본질적으로 함수입니다. (데코레이터 기타 함수)는 다른 함수에 추가 기능을 추가하는 것입니다.

원칙: 1. 데코레이팅된 함수의 소스 코드는 수정할 수 없습니다.

2. 데코레이팅된 함수의 호출은 변경할 수 없습니다. 수정된 메소드

import time
def timer(hello):
    def func(*args,**kwargs):    #函数传参,不限个数。
        start = time.time()
        hello(*args,**kwargs)    #函数传参,不限个数。
        end = time.time()
        print("运行时间:%s"%(end - start))
    return func
@timer
def hello():
    time.sleep(2)
    print("nihao")
hello()

참고: 데코레이터는 데코레이팅된 함수 위에 작성되어야 합니다.

소규모 실험: 비밀번호 확인

import time
user = {                           #存储用户名和密码
    "luozeng":'123',
    "xuemanfei":'456',
    "xutian":'789'
}

def yanzheng(hello):
    def func(*args,**kwargs):
        start = time.time()
        username = input("请输入用户:").strip()     #用户输入
        password = input("请输入密码:").strip()
        if username in user and password == user[username]:        #用户名和密码验证
            print("登陆成功")
            hello(*args,**kwargs)
        else:
            exit("用户名或密码错误!")
        end = time.time()
        print("运行时间:%s"%(end - start))
    return func
@yanzheng
def hello():
    print("你好!")
hello()

위 내용은 Python의 데코레이터에 대해 알아보기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.