ตรวจสอบ Closure
คุณกำลังสอนหลานสาวให้เขียนโปรแกรมด้วย Python และเธอกำลังฝึกเรื่องการ return ฟังก์ชันซ้อนกัน เธอคิดว่าเขียนโค้ดถูกต้องแล้ว แต่ยังกังวลว่าฟังก์ชันที่ถูก return มาจะไม่มีข้อมูลที่จำเป็นเมื่อถูกเรียกใช้ ลองแสดงให้เธอเห็นว่าตัวแปร nonlocal ทั้งหมดที่เธอต้องการนั้นอยู่ใน closure ของฟังก์ชันใหม่แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเขียนฟังก์ชันใน Python
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
def return_a_func(arg1, arg2):
def new_func():
print('arg1 was {}'.format(arg1))
print('arg2 was {}'.format(arg2))
return new_func
my_func = return_a_func(2, 17)
# Show that my_func()'s closure is not None
print(my_func.____ is not None)