Python sınıflarımın python konsolunda çalışması için sorun yaşıyorum. Tüm sınıflarımın genel ad alanına otomatik olarak içe aktarılmasını istiyorum, böylece herhangi bir prefix.module.names olmadan bunları kullanabilirim. İşte Python - paket sınıflarını konsol genel ad alanına içe aktarılıyor
projectname/
|-__init__.py
|
|-main_stuff/
|-__init__.py
|-main1.py
|-main2.py
|
|-other_stuff/
|-__init__.py
|-other1.py
|-other2.py
Her dosya aynı adı, örneğin bir sınıfını tanımlar ... Ben şimdiye kadar bu var main1.py, Main1 adında bir sınıf tanımlayacaktır.
PYTHONPATH
projemizin mutlak yoludur.
Bunun içeren bir piton başlatma dosyası var:
from projectname import *
Ama bu beni hiç benim sınıfları kullanmasına izin vermez.
ob=Main1()
ama Main1 Geçerli isim içinde değil, bu yüzden çalışmaz: Bir piton konsolu başlangıç üzerine ben yazabilmek istiyorum.
import main_stuff
projectname/main_stuff/__init__.py
yılında: vb
import other_stuff
__all__ = ["main1", "main2", "main3"]
Ve
Benprojectname/__init__.py
yılında ... __init__.py
dosyalara bir şeyler ekleyip çalıştı. Ve benim başlangıç dosyasında ekledim: yazmaya Hala var piton konsolu içinde sınıflarını kullanmak
from projectname.main_stuff import *
from projectname.main_stuff/other_stuff import *
Ama:
ob=main1.Main1()
Ben main1.
bölümünü ihtiyacım tercih ediyorum. Python konsolunu kullanırken sınıflarımı otomatik olarak global ad alanına nasıl ekleyebileceğimi bilen var mı?
Teşekkürler.
==== DÜZENLEME ====
Benim ihtiyacım sınıf düzeyinde bir paket ithal etmektirancak from package import *
bana modül düzeyinde her şeyi verir. Böyle bir şey yapmanın kolay bir yolu peşindeyim:
for module in package do:
from package.module import *
==== ben tek tek benim piton başlangıç dosyasına sınıf ithalatı ekleyerek sona erdi
BAŞKA DÜZENLEME ====. Bunu sürdürmenin yükü yüzünden ideal değil, ama istediğimi yapıyor.
from class1.py import Class1
from class2.py import Class2
from class3.py import Class3
+1 –