Python3中的模块
模块使用哪种语言实现并不重要,因为所有的模块导入与使用的方式都相同。
1、常用模块导入格式:
1 import importable1,importable2,... 2 import importable as preferred_name #将导入的模块自定义名称。如果模块是一个包或包中的一个模块,则需将每一部分用"."进行分隔。 3 from importable import * #将包内的所有内容都导入 4 from importable import object1,object2,... 5 from importable import object as preferred_name
from格式有可能导致名称冲突,用from引入大量对象可以使用多行完成或对每个新行进行转义处理。例:用from os.path import dirname,就可以直接调用dirname函数,而不需要每次都从path.dirname()进行调用,但一旦dirname这个变量被自定义的名字使用,那么dirname就是你自定义的内容,而不是那个调用的函数了,这就是所说的名称冲突。
2、包
包就是一个目录,其中包含一组模块和一个_init_.py文件。
from package import * 将引入包中的所有模块,因为包中的_init_.py中含有一个包含所有模块名的_all_特殊变量,如果模块名没有在_all_中,就不能被*格式引入。同样用此*格式也可一起引入一个模块中的所有函数。
3、自定义模块主要结构:第一行是shebang行,接着是一些注释,接着通常是三引号包含的字符串,其中提供了模块内容的概览,通常也包括一些使用实例,这也是该模块的docstring;然后是函数的主体。一般模块结尾都有这三行:
if _name_="_main_": import doctest doctest.testmod()