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

Closure giữ an toàn cho giá trị của bạn

Bạn vẫn đang giúp cháu gái hiểu về closures. Bạn đã viết hàm get_new_func() trả về một hàm lồng nhau. Hàm lồng nhau call_func() sẽ gọi bất kỳ hàm nào được truyền vào get_new_func(). Bạn cũng đã viết my_special_function() chỉ đơn giản in ra một thông báo nói rằng bạn đang thực thi my_special_function().

Bạn muốn cho cháu thấy rằng dù bạn làm gì với my_special_function() sau khi truyền nó vào get_new_func(), thì hàm mới vẫn mô phỏng đúng hành vi của my_special_function() ban đầu vì nó nằm trong closure của hàm mới.

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 my_special_function():
  print('You are running my_special_function()')
  
def get_new_func(func):
  def call_func():
    func()
  return call_func

new_func = get_new_func(my_special_function)

# Redefine my_special_function() to just print "hello"
def my_special_function():
  ____

new_func()
Chỉnh sửa và Chạy Mã