[问题] 如何使用__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