1
我有以下幾個模塊封裝組織蟒蛇相對進口未正常工作
models
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-34.pyc
│ ├── model.cpython-34.pyc
│ └── user.cpython-34.pyc
└── user.py
1 directory, 5 files
以下是內容我__init__.py
:
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
from .user import User
上運行
>>> from models import *
>>> dir()
['SQLAlchemy', 'User', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'db', 'user']
請注意,
user
也在列表中,而我明確在__init__.py
內部做了from .user import User
。
我無法理解這種行爲,因爲如果我簡單地做
>>> from models.user import User
>>> dir()
['User', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
我只得到User
。
如何實現與__init__.py
文件,即相同的結果如何導入僅db
和User
和不user
。
注:
user
是模塊user.py
和User
是裏面的類。
不要'進口*'。它將導入模塊公用名稱空間內的所有內容。 – dirn
@dirn我知道,但'user'不在模塊的公共名稱空間內,對嗎? –
[Imports中導入的\ _ \ _ init \ _ \ _。py的行爲有所不同](http://stackoverflow.com/questions/34434749/imports-behave-differently-when-in-init-py - 即,是進口) –