[問題] 如何使用__init__.py 所 import的module

作者: herbacin (herbacin)   2016-10-04 15:24:54
請問一下各位大大
我的python目錄結構是這樣 :
app\
component
__init__.py
example.py
run.py
程式碼如下 :
1. run.py
from flask import Flask, render_template
from component import example
import json
app = Flask(__name__)
@app.route('/getNow')
def getNow():
return example.example().getDateTime()
2. __init__.py
from datetime import datetime
print(' * init load...')
3. example.py
class example:
def getDateTime(self):
return datetime.now()
問題 :
當我執行 127.0.0.1/getNow的時候會出現 name datetime is not define
但__init__.py是有被執行的
我想請問我要如何才可以在exapmple 取得__init__.py import的module ?
作者: Yshuan (倚絃)   2016-10-04 15:34:00
我的理解是__init__.py只是該package必定先執行的code和在example.py裡面的env是分開的 (必須分開import)
作者: herbacin (herbacin)   2016-10-04 15:54:00
所以__init__.py import是沒有意義的囉? 並不能被該papckage的module使用
作者: Yshuan (倚絃)   2016-10-04 16:02:00
我目前只把 全域用到的config或instance才放在__init__
作者: KSJ (阿真)   2016-10-04 16:11:00
__init__.py import的意義…可以給該package本身一些設定讓package本身用起來可以像module,雖然我們常用package來分別擺放module並加以管理詳請參考https://docs.python.org/2.7/tutorial/modules.html的6.4z節 Packages
作者: freeunixer (御劍客)   2016-10-05 03:48:00
書上沒教你__init__ 載入的是該檔裡定義的函式?如果你是一個 package 要載入該檔所在目錄的其它檔案要用 __all__ = [] 去放進你要引入的 module name

Links booklink

Contact Us: admin [ a t ] ucptt.com