Это выглядит просто, но я не смог найти решение.Внешние классы Python
Я показываю проблему ниже с простейшим примером, который я мог бы придумать.
(Мои классы тихи более сложный;))
файл A.py
import os, sys
import B
from B import *
class _A():
def __init__(self,someVars):
self.someVars = someVars
def run(self):
print self.someVars
someVars = 'jdoe'
B._B(someVars)
файл B.py не совпадают с импортируют
import A
from A import _A
class _B():
def __init__(self,someVars):
self.someVars = someVars
def run(self):
A._A(self.someVars)
с import A
-> обратного вызова: не может найти _A
Он работает только тогда, когда я -
from A import *
Но и логически функции выполняются 2 раза.
Спасибо всем
Его так как импорт A не импортирует подчеркнутые классы. Вы вызываете 'A._A' вместо' _A', когда вы делаете 'from A import _A', что позволяет вам напрямую называть' _A'. Никогда не используйте 'from A import *', всегда используйте 'import A' или' from A import _A'. Тебе не нужны оба, один будет делать. [Импорт подвешенных классов] (http://stackoverflow.com/questions/551038/private-implementation-class-in-python). [Импорт против импорта] (http://stackoverflow.com/questions/710551/import-module-or-from-module-import) –