最近敲代码的时候主要遇到两大问题,第一个是构造自己包的时候找不到package。构造自己package谈两条经验,有助于解决这个问题。
- 1 自己构造包的名称尽量不要和Python自带的包重名,起的名字个性化一点。要不然出的bug都不知道错在哪
- 2 只要打算把这个文件夹当成一个包,就一定要在这个文件夹同一目录下新建一个__init__.py文件(内容可以为空)
一般来说注意这两点,构建包就不成问题。
在包的文件夹里面的.py文件称之为模块(文件名就是模块名),当然包里也可能有子包,即使如此,每个包里.py文件也是模块(除了带双下划线的那种)
在模块文件里,可以写函数,属性或者类。那么如何调用这些函数、属性或者类呢?
调用函数十分简单,策略就是import 模块.函数或者 from 模块 import 函数,如果想类实例化为对象,可以写成
from
模块
import
类
a
=
类
(
)
但是一定要注意,不能把模块实例化为对象,他不是类,否则会报错’module’ object is not callable。一般来说,出这种错,半天找不到原因,主要是代码规范做的不够好。把模块名称和类名称写的一样了,以为import模块就可以了,实际上并不是这样。比如我想调用一个叫haha的类并实例化为对象,写了一个haha.py文件,在里面定义haha类,那么实例化对象的时候应该这样写(假设包是MyCode):
from
MyCode
import
haha
a
=
haha
.
haha
(
)
或者写成这样
from
MyCode
.
haha
import
haha
a
=
haha
(
)
这样写都不是很好,总之,最好不要把模块名称和类名称写的一样