Python包、模块、类以及遇到的问题

最近敲代码的时候主要遇到两大问题,第一个是构造自己包的时候找不到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()

这样写都不是很好,总之,最好不要把模块名称和类名称写的一样

发布了189 篇原创文章 · 获赞 233 · 访问量 36万+

猜你喜欢

转载自blog.csdn.net/Einstellung/article/details/90668707