>백엔드 개발 >파이썬 튜토리얼 >Python 데코레이터를 사용하여 함수를 굵게 및 기울임꼴로 만들고, 타임스탬프를 추가하고, 메서드 결과를 대문자로 표시하려면 어떻게 해야 합니까?

Python 데코레이터를 사용하여 함수를 굵게 및 기울임꼴로 만들고, 타임스탬프를 추가하고, 메서드 결과를 대문자로 표시하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-24 16:33:17536검색

How Can I Use Python Decorators to Make Functions Bold and Italic, Add Timestamps, and Capitalize Method Results?

데코레이터를 사용하여 함수를 굵게 및 기울임꼴로 만들기

데코레이터는 다른 기능을 향상시키는 Python 함수입니다. 텍스트를 굵은꼴과 기울임꼴로 서식 지정하기 위해 @make_bold 및 @make_italic이라는 두 개의 데코레이터를 만듭니다. 방법은 다음과 같습니다.

</p>
<h1>텍스트를 굵게 만드는 데코레이터</h1>
<p>def make_bold(func):</p>
<pre class="brush:php;toolbar:false">def wrapper():
    return "<b>" + func() + "</b>"  # Surround the result with bold tags
return wrapper

텍스트를 기울임꼴로 만드는 데코레이터

데프 make_italic(func):

def wrapper():
    return "<i>" + func() + "</i>"  # Surround the result with italic tags
return wrapper

@make_bold
@make_italic
def say():

return "Hello"

print(say()) # 출력: "안녕하세요"

인수로 함수 꾸미기

인수를 받는 데코레이터를 만들 수도 있습니다. 예를 들어, 결과에 타임스탬프를 추가하는 데코레이터를 만들어 보겠습니다.

<br>가져오기 시간</p>
<h1>함수에 타임스탬프를 추가하는 데코레이터</h1>
<p> 데프 add_timestamp(func):</p>
<pre class="brush:php;toolbar:false">def wrapper(*args, **kwargs):
    timestamp = time.ctime()  # Get the current time
    return f"{timestamp}: {func(*args, **kwargs)}"  # Prepend the timestamp to the call
return wrapper

@add_timestamp
def Greeting(name):

return f"Hello, {name}!"

print(greet("John")) # 출력: "2023-01 -01 12:00:00: 안녕하세요. John!"

메서드 데코레이터

데코레이터는 함수뿐만 아니라 메소드에도 작동합니다. 메소드를 장식하는 방법은 다음과 같습니다.

<br>class User:</p>
<pre class="brush:php;toolbar:false">def __init__(self, name):
    self.name = name

사용자 이름을 대문자로 표시하는 데코레이터

def capitalize_name(method):

def wrapper(self):
    return method(self).capitalize()  # Capitalize the result
return wrapper

@capitalize_name
def get_name(self):

return self.name

user = User("john")
print(user.get_name()) # 출력: "John"

모범 사례

  • @syntax를 사용하여 함수를 장식하세요. 읽을 수 있습니다.
  • 성능 오버헤드를 방지하려면 데코레이터를 가볍게 유지하세요.
  • 원래 함수의 메타데이터(이름, 문서 문자열)를 보존하려면 functools.wraps()를 사용하세요.
  • 다음을 위해 데코레이터 사용을 고려하세요. 로깅, 캐싱 또는 오류 처리와 같은 교차 문제.

위 내용은 Python 데코레이터를 사용하여 함수를 굵게 및 기울임꼴로 만들고, 타임스탬프를 추가하고, 메서드 결과를 대문자로 표시하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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