从开始学习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的初始化的一部分功能吧。
希望高手指点,新手共进哈。