0 like 0 dislike
2 views
in Python by anonymous Bilge (165k points)
python no named module ve  __init__.py dosyası

1 Answer

0 like 0 dislike
by anonymous Bilge (165k points)

Kendi yazdığınız python sınıflarının import edilmesi için bulundukları klasörün python derleyicisine  paket olarak verilmesi lazım. Bunun yapılması içinde __init__.py  dosyasının her bir folder için eklenmesi lazım. Boş olması önemli değil dosyanın olması önemli. Böylece python bunu paket olarak kabul edecek. Elbette ihtiyaca göre bu dosyanın içine importlarınızı yapabilirisiniz. Aşağıdaki örnekte iki main/slave olarak iki dosya mevcut, main slave'i çağırıyor.
 

ay@ay:~/tesdir$ ls -la
-rw-rw-r--   __init__.py
-rw-rw-r--  main.py
-rw-rw-r--  slave.py
 

Main Class;
from slave import Slave
class Main():
   def __init__(self):
      
print("Init main")
      self.slave=Slave()
      self.slave.showMe()
      print(self.slave.cvar)

   def checkMe(self):
      
print("Main class checkMe() works!")
      print(self.slave.name)

f=Main()
f.checkMe()

Slave;
class Slave():
   cvar='Im class variable...' 
   
   def __init__(self):

      self.name="Im instance/object variable"
      print("Init Slave")
      print(self.cvar)

   def showMe():
      print("Slave showMe() works!")

__int__.py;

from . import Slave

...