import_checker การตรวจสอบโปรแกรมหลามสำหรับวงกลม (หรือ recursive) การนำเข้า
งูหลามเป็นภาษาการเขียนโปรแกรมที่ดี มีสิ่งหนึ่งที่น่ากลัวกับมันว่าเป็นที่กัดแม้จะมีประสบการณ์มากที่สุดโปรแกรมเมอร์หลามทุกขณะนี้แล้ว: ขอบเขตของตัวแปร
เราได้รับการสอนที่จะใช้คำว่า "โลก" และจะทำเช่นนั้นอย่างเต็มที่ ยังคงมีปัญหาเกิดขึ้นเมื่อการทำงานเป็น "นำเข้า recursive" ปัญหา
ตัวอย่าง:
โปรแกรม ### ###
นำเข้า B
var = 0
ถ้า __name__ == '__main__:
var = 10
B.doit ()
### โมดูล B ###
นำเข้า
def doit ():
A.var พิมพ์
### ตอนท้ายของตัวอย่าง ###
B โมดูลจะเห็น A.var มีค่า 0 ถึงแม้ว่าในโปรแกรมที่เราได้รับมอบหมาย 10. ค่าของงูใหญ่ที่ถูกต้องและมันไม่ได้เป็นปัญหาหลาม แต่มันเป็น $ # @! ทำให้เกิดความสับสนและเป็นที่เกิดจากการนำเข้า recursive; การนำเข้า B และ B นำเข้าเอ
import_checker.py เป็นเครื่องมือที่ตรวจพบการนำเข้า recursive
ปัญหานี้เกิดขึ้นเฉพาะสำหรับตัวแปรระดับโลกในโมดูล
วิธีที่ดีที่สุดในการแก้ปัญหาคือการใส่ 'var' เป็นโมดูลใหม่ซี
และนำเข้าจากทั้ง C และ B
ต้องการ:
รายละเอียดซอฟแวร์:
ความคิดเห็นที่ไม่พบ