Bắt đầu ngayBắt đầu miễn phí

Giữ nguyên docstring khi dùng decorator cho hàm

Một người bạn nhờ bạn giúp một vấn đề. Họ đã viết vài decorator hay ho và thêm chúng vào các hàm trong thư viện mã nguồn mở mà họ đang làm. Tuy nhiên, khi chạy kiểm thử, họ phát hiện tất cả docstring đều biến mất khỏi các hàm đã được trang trí. Hãy chỉ cho bạn mình cách giữ lại docstring và các metadata khác khi viết decorator.

Bài tập này là một phần của khóa học

Viết hàm trong Python

Xem khóa học

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

def add_hello(func):
  def wrapper(*args, **kwargs):
    print('Hello')
    return func(*args, **kwargs)
  return wrapper

# Decorate print_sum() with the add_hello() decorator
____
def print_sum(a, b):
  """Adds two numbers and prints the sum"""
  print(a + b)
  
print_sum(10, 20)
# Define the docstring
print_sum_docstring = print_sum.____
print(print_sum_docstring)
Chỉnh sửa và Chạy Mã