ฉันสับสนเล็กน้อยเกี่ยวกับการทำงานของตัวแปรทั่วโลก ฉันมีโครงการขนาดใหญ่ที่มีประมาณ 50 ไฟล์และฉันจำเป็นต้องกำหนดตัวแปรทั่วโลกสำหรับไฟล์เหล่านั้นทั้งหมด
สิ่งที่ฉันทำคือกำหนดไว้ในmain.py
ไฟล์โครงการของฉันดังต่อไปนี้:
# ../myproject/main.py
# Define global myList
global myList
myList = []
# Imports
import subfile
# Do something
subfile.stuff()
print(myList[0])
ฉันพยายามที่จะใช้myList
ในsubfile.py
ดังต่อไปนี้
# ../myproject/subfile.py
# Save "hey" into myList
def stuff():
globals()["myList"].append("hey")
อีกวิธีหนึ่งที่ฉันพยายาม แต่ก็ไม่ได้ผลเช่นกัน
# ../myproject/main.py
# Import globfile
import globfile
# Save myList into globfile
globfile.myList = []
# Import subfile
import subfile
# Do something
subfile.stuff()
print(globfile.myList[0])
และภายในsubfile.py
ฉันมีสิ่งนี้:
# ../myproject/subfile.py
# Import globfile
import globfile
# Save "hey" into myList
def stuff():
globfile.myList.append("hey")
แต่มันก็ไม่ได้ผล ฉันควรใช้สิ่งนี้อย่างไร ฉันเข้าใจว่ามันไม่สามารถทำงานได้เช่นนั้นเมื่อทั้งสองไฟล์ไม่รู้จักกันจริง ๆ (ไฟล์ย่อยที่ดีไม่รู้จักหลัก) แต่ฉันคิดไม่ออกว่าจะทำอย่างไรโดยไม่ใช้ io เขียนหรือดองซึ่ง ฉันไม่ต้องการทำ