python中的import指的是什么

如题所述

第1个回答  2024-07-14
Python中的import语句是用来调用模块的。
一、module
通常模块为一个文件,直接使用import来导入就好了。可以作为module的文件类型有"py"、"pyo"、"pyc"、"pyd"、"so"、"dll"
二、package
通常包总是一个目录,可以使用import导入包,或者from + import来导入包中的部分模块。包目录下为首的一个文件便是 __init__.py。然后是一些模块文件和子目录,假如子目录中也有 __init__.py 那么它就是这个包的子包了。
模块
可以使用import语句将一个源代码文件作为模块导入.例如:
# file : spam.pya = 37 # 一个变量def foo: # 一个函数 print "I'm foo"class bar: # 一个类 def grok(self): print "I'm bar.grok"b = bar() # 创建一个实例
使用import spam 语句就可以将这个文件作为模块导入。系统在导入模块时,要做以下三件事:
1.为源代码文件中定义的对象创建一个名字空间,通过这个名字空间可以访问到模块中定义的函数及变量。
2.在新创建的名字空间里执行源代码文件.
3.创建一个名为源代码文件的对象,该对象引用模块的名字空间,这样就可以通过这个对象访问模块中的函数及变量,如:
import spam # 导入并运行模块 spam print spam.a # 访问模块 spam 的属性 spam.foo() c = spam.bar() .
用逗号分割模块名称就可以同时导入多个模块:
import socket, os, regex模块导入时可以使用 as 关键字来改变模块的引用对象名字:
import os as systemimport socket as net, thread as threadssystem.chdir("")net.gethostname()
使用from语句可以将模块中的对象直接导入到当前的名字空间. from语句不创建一个到模块名字空间的引用对象,而是把被导入模块的一个或多个对象直接放入当前的名字空间:
from socket import gethostname # 将gethostname放如当前名字空间print gethostname() # 直接调用socket.gethostname() # 引发异常NameError: socket
from语句支持逗号分割的对象,也可以使用星号(*)代表模块中除下划线开头的所有对象:from socket import gethostname, socketfrom socket import * # 载入所有对象到当前名字空间