您的位置:首页 > 编程语言 > Python开发

Python 中__init__.py的使用(通过包调用方法)

2011-05-10 09:48 781 查看
      从开始学习python到现在,至少到昨天遇到那个问题为止,只知道__init__.py文件是用来做一些初始化的工作的,但是具体可以做哪些东西却一无所知。先看看下面的代码吧。

 

程序包结构

项目最外层包: /home/admin/
对应项目包(/home/admin/)下有如下文件和目录:
./dbadmin/
./webadmin/
__init__.py
setting.py
urls.py
manage.py
对应/home/admin/dbadmin/下有如下文件和目录:
./engin/
./test/
__init__.py
views.py
model.py
 

代码示例:

from admin import dbadmin
print "How to use __init__"
# dbadmin.demo()具体实现不管,只要知道他它是一个方法
rst = dbadmin.demo()
print "Where is the method demo()"
 

看着这回答一个问题:

dbadmin明明是一个目录,它是如何通过dbadmin.demo()方法来调用demo()方法的呢?

 

如果你知道答案了,您可以不用往下看了,我要说的就是那个!

如果不知道,继续……

 

 

      其实结合包结构和代码,大家可以能会发现找不到demo()的位置(Note:不知道上个问题的答案的情况下),最开始的时候也提到过,__init__.py是用来做一些初始化的操作的,上述代码中 dbadmin.demo() 调用的方法demo()其实是在__init__.py中,也就是说,通过把方法定义在__init__.py中,我们就可以直接通过包来调用__init__.py中的方法。相信大家也知道这样的调用方式: 包名.文件名.方法名。

      其实我也是在看别人代码的时候发现这个问题的,据相关高手介绍,是否在__init__.py中定义方法具体还是要看个人习惯的,一般情况下他们是会让__init__.py空着的。这应该也算是__init__.py的初始化的一部分功能吧。

      希望高手指点,新手共进哈。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python import 工作