ฉันกำลังพยายามจัดระเบียบโมดูลสำหรับการใช้งานของฉันเอง ฉันมีสิ่งนี้:
lib/
__init__.py
settings.py
foo/
__init__.py
someobject.py
bar/
__init__.py
somethingelse.py
ในlib/__init__.py
ฉันต้องการกำหนดคลาสบางคลาสที่จะใช้หากฉันนำเข้า lib อย่างไรก็ตามฉันไม่สามารถเข้าใจได้โดยไม่ต้องแยกคลาสออกเป็นไฟล์และนำเข้าใน__init__.py
ไฟล์.
แทนที่จะพูดว่า:
lib/
__init__.py
settings.py
helperclass.py
foo/
__init__.py
someobject.py
bar/
__init__.py
somethingelse.py
from lib.settings import Values
from lib.helperclass import Helper
ฉันต้องการสิ่งนี้:
lib/
__init__.py #Helper defined in this file
settings.py
foo/
__init__.py
someobject.py
bar/
__init__.py
somethingelse.py
from lib.settings import Values
from lib import Helper
เป็นไปได้ไหมหรือฉันต้องแยกคลาสเป็นไฟล์อื่น
แก้ไข
ตกลงถ้าฉันนำเข้า lib จากสคริปต์อื่นฉันสามารถเข้าถึงคลาส Helper ได้ ฉันจะเข้าถึงคลาส Helper จาก settings.py ได้อย่างไร
ตัวอย่างที่นี่อธิบายการอ้างอิงภายในแพ็คเกจ ฉันอ้างว่า "โมดูลย่อยมักต้องอ้างถึงกันและกัน" ในกรณีของฉัน lib.settings.py ต้องการ Helper และ lib.foo.someobject ต้องการการเข้าถึง Helper ดังนั้นฉันควรกำหนดคลาส Helper ที่ไหน