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

Gắn thẻ cho hàm của bạn

Gắn thẻ (tagging) nghĩa là bạn gán cho một thứ một hoặc nhiều chuỗi dùng như nhãn. Ví dụ, bạn thường gắn thẻ email hoặc ảnh để sau này có thể tìm kiếm. Bạn quyết định viết một decorator cho phép gắn danh sách thẻ bất kỳ vào các hàm của mình. Bạn có thể dùng các thẻ này cho nhiều việc:

  • Thêm thông tin về người đã làm việc trên hàm, để khi người dùng gặp rắc rối khi sử dụng có thể biết hỏi ai.
  • Gắn nhãn các hàm là "experimental" để người dùng biết rằng đầu vào và đầu ra có thể thay đổi trong tương lai.
  • Đánh dấu các hàm mà bạn dự định gỡ bỏ ở phiên bản tương lai của mã nguồn.
  • V.v.

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

Hướng dẫn bài tập

  • Định nghĩa một decorator mới tên decorator() để trả về.
  • Đảm bảo hàm đã được trang trí giữ nguyên metadata của nó.
  • Gọi hàm đang được trang trí và trả về kết quả.
  • Trả về decorator mới.

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 tag(*tags):
  # Define a new decorator, named "decorator", to return
  def ____(____):
    # Ensure the decorated function keeps its metadata
    @____(____)
    def wrapper(*args, **kwargs):
      # Call the function being decorated and return the result
      return ____(____, ____)
    wrapper.tags = tags
    return wrapper
  # Return the new decorator
  return ____

@tag('test', 'this is a tag')
def foo():
  pass

print(foo.tags)
Chỉnh sửa và Chạy Mã