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

      从开始学习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)