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

看板Python作者 (herbacin)時間7年前 (2016/10/04 15:24), 編輯推噓2(2011)
留言13則, 4人參與, 最新討論串1/1
請問一下各位大大 我的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 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.132.73 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1475565896.A.2E1.html

10/04 15:34, , 1F
我的理解是__init__.py只是該package必定先執行的code
10/04 15:34, 1F

10/04 15:35, , 2F
和在example.py裡面的env是分開的 (必須分開import)
10/04 15:35, 2F

10/04 15:54, , 3F
所以__init__.py import是沒有意義的囉? 並不能
10/04 15:54, 3F

10/04 15:54, , 4F
被該papckage的module使用
10/04 15:54, 4F

10/04 16:02, , 5F
我目前只把 全域用到的config或instance才放在__init__
10/04 16:02, 5F

10/04 16:11, , 6F
__init__.py import的意義…可以給該package本身一些設定
10/04 16:11, 6F

10/04 16:12, , 7F
讓package本身用起來可以像module,雖然我們常用package
10/04 16:12, 7F

10/04 16:13, , 8F
來分別擺放module並加以管理
10/04 16:13, 8F

10/04 16:15, , 9F

10/04 16:16, , 10F
的6.4z節 Packages
10/04 16:16, 10F

10/05 03:48, , 11F
書上沒教你__init__ 載入的是該檔裡定義的函式?
10/05 03:48, 11F

10/05 03:49, , 12F
如果你是一個 package 要載入該檔所在目錄的其它檔案
10/05 03:49, 12F

10/05 03:50, , 13F
要用 __all__ = [] 去放進你要引入的 module name
10/05 03:50, 13F
文章代碼(AID): #1Nyrb8BX (Python)