1.模块的定义:
模块是一组包含了一组功能的python文件,比如test.py,模块名为test,可以通过import test进行调用。模块可以分为以下四个通用类别模块是一组包含了一组功能的python文件,比如test.py,模块名为test,可以通过import test进行调用。模块可以分为以下四个通用类别:
1 使用python编写的.py文件
2 已被编译为共享库或DLL的C或C++扩展
3 把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包)
4 使用C编写并链接到python解释器的内置模块
2.使用模块
(1)import的使用
import test 或者 import test as bieming 或者可以在一行导入多个模块 import sys,os
(2)from……import…的使用
from test import test1(其中test1指test中的函数)
from 文件夹 import 模块 #此种方式调用的时候,调用时需要模块.函数()
以上两种模块使用方式的区别是:
使用from…import…则是将test中的名字直接导入到当前的名称空间中,所以在当前名称空间中,直接使用名字就可以了、无需加前缀:test.
3.模块的搜索路径
用sys.path指定特定搜索模块路径,例如,当模块文件与主函数文件不在同一文件夹下时,必须先用模块的搜索路径方法导入模块所在的地址路径,模块方能被调用。
模块文件:
class Box():
def __init__(self,length1,width1,height1):
self.length=length1
self.width=width1
self.height=height1
def volume(self):
return self.length*self.width*self.height
主文件:
>>> box=Box(10,10,10)
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
box=Box(10,10,10)
NameError: name 'Box' is not defined
>>> import sys
>>> sys.path[0]='D:\\python文件夹\\volume.py'
>>> form volume.py import *
>>>> sys.path[0]='D:\\python文件夹'
>>> form volume.py import *
>>>box=Box(10,10,10)
>>>print(box.volume())
>>>1000
二、包
1.包的定义
包就是一个包含有__init__.py文件的文件夹,所以其实我们创建包的目的就是为了用文件夹将文件/模块组织起来
2.包的使用
import导入文件时,产生名称空间中的名字来源于文件;import导入包,产生的名称空间的名字同样来源于文件,即包下的__init__.py,导入包本质就是在导入该文件
三、不同级目录下使用模块方式:
1.找到模块所在的文件目录并将文件目录加载到系统路径
import sys,os
x=os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(file))))
sys.path.append(x)
2.在文件中导入该模块
import module_1
module_1.sayhi()