python의 장식물 및 실용 예
9824 단어 Python
개시하다
장식물이 무엇인지 설명하기 전에 간단한 문제부터 해결하자
질문 1
def.py def print_str():
print("hello world")
print_"Hello World"를 출력하는 동시에 현재 시간도 출력하세요.
print_1.py # 時間モジュールをインポート
from datetime import datetime
def print_str():
print("hello world")
print(datetime.now())
print_str()
#出力結果
hello world
2019-06-15 00:09:09.878962
함수 내부에 출력 시간의 코드를 추가하면 간단하게 완성할 수 있습니다
그럼 문제를 좀 바꿔 봅시다.
질문 2
print_str 함수가 존재합니다. "Hello World"를 출력하는 동시에 현재 시간을 출력합니다.ただし、関数内部で時間出力のcodeを追加してはならない
print_2.py
from datetime import datetime
def decorator(func):
def wrapper():
print(datetime.now())
func()
return wrapper
def print_str():
print("hello world")
f = decorator(print_str)
f()
#出力結果
2019-06-15 09:28:45.585808
hello world
경계 정의
여기에 정의된 함수입니다.장식물입니다.
문제에 따라 장식물의 정의를 설명하자면
함수 내부를 변환하지 않고 새로운 기능을 동적으로 추가할 수 있습니다.
간편한 호출 방법
@ 태그 + 함수명은 함수에 장식물을 간단하게 설치할 수 있습니다
print_3.pydef decorator(func):
def wrapper():
print(datetime.now())
func()
return wrapper
# @マーク+関数名でデコレーターを関数に簡単に装着も可能
@decorator
def print_str():
print("hello world")
print_str()
# 出力
2019-06-15 09:39:06.419550
hello world
여러 개의 매개 변수가 존재하는 함수의 대응 방법
print_4.pyfrom datetime import datetime
def decorator(func):
# 可変長引数をデコレーターにあたえ
def wrapper(*args, **kw):
print(datetime.now())
func(*args, **kw)
return wrapper
@decorator
def print_str(name, **kw):
print("hello world" + name)
print(kw)
print_str(" byby",a=1,b=2)
#出力
2019-06-15 10:00:03.465790
hello world byby
{'a': 1, 'b': 2}
Flash에 배치된 장식물의 인스턴스
플래시를 간단히 소개합니다.decorator
플래시에서 장식용 예를 살펴봅시다. 플래시를 몰라도 괜찮아요. 제가 설명해 드릴게요.
flask.py@api.route('/get', methods=['GET'])
def test_get_rout():
name = request.args.get('name')
return name, 200
# Djangoの場合はrouteファイル存在しますが
# flaskではデコレーターでルーティングを実現してます
@api.route('/psw',methods=['GET'])
@auth.login_required
def get_psw():
psw = request.args.get('psw')
return 'ok', 200
# 一つの関数に対して複数のデコレーターをつけることも可能
# @auth.login_requiredはこのrouteのアクセス権限を決めてます
flack 루트의 변송기는 대량의 코드로 이루어진다.
함수에 정의되면 함수의 내용이 팽창하여 읽기 어려운 코드가 됩니다. 볼록기를 사용하면 이 문제를 잘 피할 수 있다고 생각합니다. 볼록기의 실용적인 예입니다.
Simple is better than complex.
복잡하기보다는 간단명료한 것이 낫다철학 입문
Reference
이 문제에 관하여(python의 장식물 및 실용 예), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Syoitu/items/2a59d6f6e45219289792
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
def.py
def print_str():
print("hello world")
print_"Hello World"를 출력하는 동시에 현재 시간도 출력하세요.print_1.py
# 時間モジュールをインポート
from datetime import datetime
def print_str():
print("hello world")
print(datetime.now())
print_str()
#出力結果
hello world
2019-06-15 00:09:09.878962
함수 내부에 출력 시간의 코드를 추가하면 간단하게 완성할 수 있습니다그럼 문제를 좀 바꿔 봅시다.
질문 2
print_str 함수가 존재합니다. "Hello World"를 출력하는 동시에 현재 시간을 출력합니다.ただし、関数内部で時間出力のcodeを追加してはならない
print_2.py
from datetime import datetime
def decorator(func):
def wrapper():
print(datetime.now())
func()
return wrapper
def print_str():
print("hello world")
f = decorator(print_str)
f()
#出力結果
2019-06-15 09:28:45.585808
hello world
경계 정의
여기에 정의된 함수입니다.장식물입니다.
문제에 따라 장식물의 정의를 설명하자면
함수 내부를 변환하지 않고 새로운 기능을 동적으로 추가할 수 있습니다.
간편한 호출 방법
@ 태그 + 함수명은 함수에 장식물을 간단하게 설치할 수 있습니다
print_3.pydef decorator(func):
def wrapper():
print(datetime.now())
func()
return wrapper
# @マーク+関数名でデコレーターを関数に簡単に装着も可能
@decorator
def print_str():
print("hello world")
print_str()
# 出力
2019-06-15 09:39:06.419550
hello world
여러 개의 매개 변수가 존재하는 함수의 대응 방법
print_4.pyfrom datetime import datetime
def decorator(func):
# 可変長引数をデコレーターにあたえ
def wrapper(*args, **kw):
print(datetime.now())
func(*args, **kw)
return wrapper
@decorator
def print_str(name, **kw):
print("hello world" + name)
print(kw)
print_str(" byby",a=1,b=2)
#出力
2019-06-15 10:00:03.465790
hello world byby
{'a': 1, 'b': 2}
Flash에 배치된 장식물의 인스턴스
플래시를 간단히 소개합니다.decorator
플래시에서 장식용 예를 살펴봅시다. 플래시를 몰라도 괜찮아요. 제가 설명해 드릴게요.
flask.py@api.route('/get', methods=['GET'])
def test_get_rout():
name = request.args.get('name')
return name, 200
# Djangoの場合はrouteファイル存在しますが
# flaskではデコレーターでルーティングを実現してます
@api.route('/psw',methods=['GET'])
@auth.login_required
def get_psw():
psw = request.args.get('psw')
return 'ok', 200
# 一つの関数に対して複数のデコレーターをつけることも可能
# @auth.login_requiredはこのrouteのアクセス権限を決めてます
flack 루트의 변송기는 대량의 코드로 이루어진다.
함수에 정의되면 함수의 내용이 팽창하여 읽기 어려운 코드가 됩니다. 볼록기를 사용하면 이 문제를 잘 피할 수 있다고 생각합니다. 볼록기의 실용적인 예입니다.
Simple is better than complex.
복잡하기보다는 간단명료한 것이 낫다철학 입문
Reference
이 문제에 관하여(python의 장식물 및 실용 예), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Syoitu/items/2a59d6f6e45219289792
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from datetime import datetime
def decorator(func):
def wrapper():
print(datetime.now())
func()
return wrapper
def print_str():
print("hello world")
f = decorator(print_str)
f()
#出力結果
2019-06-15 09:28:45.585808
hello world
def decorator(func):
def wrapper():
print(datetime.now())
func()
return wrapper
# @マーク+関数名でデコレーターを関数に簡単に装着も可能
@decorator
def print_str():
print("hello world")
print_str()
# 出力
2019-06-15 09:39:06.419550
hello world
from datetime import datetime
def decorator(func):
# 可変長引数をデコレーターにあたえ
def wrapper(*args, **kw):
print(datetime.now())
func(*args, **kw)
return wrapper
@decorator
def print_str(name, **kw):
print("hello world" + name)
print(kw)
print_str(" byby",a=1,b=2)
#出力
2019-06-15 10:00:03.465790
hello world byby
{'a': 1, 'b': 2}
@api.route('/get', methods=['GET'])
def test_get_rout():
name = request.args.get('name')
return name, 200
# Djangoの場合はrouteファイル存在しますが
# flaskではデコレーターでルーティングを実現してます
@api.route('/psw',methods=['GET'])
@auth.login_required
def get_psw():
psw = request.args.get('psw')
return 'ok', 200
# 一つの関数に対して複数のデコレーターをつけることも可能
# @auth.login_requiredはこのrouteのアクセス権限を決めてます
Reference
이 문제에 관하여(python의 장식물 및 실용 예), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Syoitu/items/2a59d6f6e45219289792텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)