Python 中__init__.py的使用(通过包调用方法)
2011-05-10 09:48
781 查看
从开始学习python到现在,至少到昨天遇到那个问题为止,只知道__init__.py文件是用来做一些初始化的工作的,但是具体可以做哪些东西却一无所知。先看看下面的代码吧。
程序包结构
代码示例:
看着这回答一个问题:
dbadmin明明是一个目录,它是如何通过dbadmin.demo()方法来调用demo()方法的呢?
如果你知道答案了,您可以不用往下看了,我要说的就是那个!
如果不知道,继续……
其实结合包结构和代码,大家可以能会发现找不到demo()的位置(Note:不知道上个问题的答案的情况下),最开始的时候也提到过,__init__.py是用来做一些初始化的操作的,上述代码中 dbadmin.demo() 调用的方法demo()其实是在__init__.py中,也就是说,通过把方法定义在__init__.py中,我们就可以直接通过包来调用__init__.py中的方法。相信大家也知道这样的调用方式: 包名.文件名.方法名。
其实我也是在看别人代码的时候发现这个问题的,据相关高手介绍,是否在__init__.py中定义方法具体还是要看个人习惯的,一般情况下他们是会让__init__.py空着的。这应该也算是__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 中__init__.py的使用(通过包调用方法)
- python中的__new__方法与__init__方法区别与调用;通过使用__new__实现单例模式
- python文件中的__name__=='__main__'的使用及调用其他py文件中的函数方法
- python识别图片使用pytesser模块时__init__.py调用subprocess模块出现WindowsError: [Error 2]
- 使用setup.py安装python包和卸载python包的方法
- initialize和init以及load方法的区别与使用以及什么时候调用
- 使用Pyjnius 从python调用自定义Java方法
- Python中__init__方法使用
- SQL学习:mysql数据库备份和使用日志恢复+python调用mysql方法(4)
- 使用Python+xmpppy通过gtalk服务收发消息
- 使用Python+xmpppy通过gtalk服务收发消息
- asp.net 通过ajax方式调用webmethod方法使用自定义类传参及获取返回参数
- c++生成dll使用python调用dll的方法
- 使用Python通过win32 COM打开Excel并添加Sheet的方法
- python下面通过ctypes模块调用c++库的方法
- python下面通过ctypes模块调用c++库的方法
- scrapy一些非常实用资料整理,与其他mongdb、django、redis、solr、tor结合使用以及用Python脚本调用等等方法
- 使用setup.py安装python包和卸载python包的方法
- 使用Pyjnius 从python调用自定义Java方法
- .net 使用JQuery 调用Ashx 后面直接写方法名,通过反射找到对应的方法