Hàm với đối số từ khóa độ dài linh hoạt (**kwargs)
Hãy đi xa hơn với phần bạn đã học về đối số linh hoạt — bạn đã dùng *args, giờ bạn sẽ dùng **kwargs! Điểm khác biệt của **kwargs là nó cho phép bạn truyền một số lượng đối số từ khóa thay đổi vào hàm. Nhớ lại từ video trước rằng, trong phần định nghĩa hàm, kwargs là một dictionary.
Để hiểu rõ hơn, trong bài tập này bạn sẽ dùng **kwargs để định nghĩa một hàm chấp nhận số lượng đối số từ khóa linh hoạt. Hàm này mô phỏng một hệ thống báo cáo trạng thái đơn giản, in ra trạng thái của một nhân vật trong phim.
Bài tập này là một phần của khóa học
Giới thiệu về Functions trong Python
Hướng dẫn bài tập
- Hoàn thiện phần đầu hàm với tên hàm
report_status. Hàm nhận một đối số linh hoạt duy nhất**kwargs. - Lặp qua các cặp khóa-giá trị của
kwargsđể in ra khóa và giá trị, phân tách bằng dấu hai chấm ':'. - Ở lần gọi đầu tiên tới
report_status(), truyền các cặp khóa-giá trị sau:name="luke",affiliation="jedi"vàstatus="missing". - Ở lần gọi thứ hai tới
report_status(), truyền các cặp khóa-giá trị sau:name="anakin",affiliation="sith lord"vàstatus="deceased".
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.
# Define report_status
def ____(____):
"""Print out the status of a movie character."""
print("\nBEGIN: REPORT\n")
# Iterate over the key-value pairs of kwargs
for ____, ____ in kwargs.items():
# Print out the keys and values, separated by a colon ':'
print(____ + ": " + ____)
print("\nEND REPORT")
# First call to report_status()
# Second call to report_status()
report_status(name=____, affiliation=____, status=____)