当前位置 博文首页 > zy010101博客:Python——模块
Python中使用import机制来引入模块,和C语言的头文件是类似的,不过没有头文件那么多的注意事项。import机制相对而言是更加合理的。
将函数存储在称为模块的独立文件中,再将模块导入到主程序中。import 语句允许在当前运行的程序文件中使用模块中的代码。一个简单的例子如下所示,首先在同一个目录下创建两个文件,分别是main.py和Hello.py。然后分别写上如下内容。
# Hello.py
def Hello():
print("Hello World!")
# main.py
import Hello # 导入整个模块
Hello.Hello()
执行main.py文件,即可看到Hello.py中的Hello函数被调用。结果如下所示:
Python 读取这个文件时,代码行 import Hello让 Python 打开文件 Hello.py,并将其中的所有函数都复制到这个程序中。你看不到复制的代码,因为在这个程序即将运行时,Python 在幕后复制了这些代码。?
然后,你使用modulename.functionname()就可以使用相关函数了。这点是非常方便的。当然了,有时候你并不想导入某个模块的所有功能,那么可以使用下面的方式来导入你想使用的函数。例如:
# Hello.py
def Hello():
print("Hello World!")
def NoHello():
print("???")
def Hi():
print("Hi")
# main.py
from Hello import NoHello, Hello # 导入Hello模块的NoHello函数和Hello函数
Hello()
NoHello()
执行main.py之后,结果如下所示:
使用from module import function导入之后,就可以用函数名来使用函数,不需要使用module.function的方式了。考虑到如下情形:“如果要导入函数的名称可能与程序中现有的名称冲突,或者函数的名称太长,可指定简短而独一无二的别名:函数的另一个名称,类似于外号。要给函数取这种特殊外号,需要在导入它时指定”。如下所示:
from Hello import Hello as HO # 将导入的Hello函数起别名为HO
HO()
使用HO即可调用Hello模块中的Hello函数。执行结果如下所示:
既然可以给模块内的函数指定别名,其实也可以给模块指定别名。如下所示:
import Hello as H # 将导入的模块Hello起别名为H
H.Hi()
有的时候,我们为了方便,不想写模块名(即使是起了简短别名),想直接使用函数名来调用函数。Python也提供了这样的导入语法,使用*号即可。如下所示:
from Hello import * # 导入Hello模块的所有函数
Hello()
NoHello()
Hi()
程序执行结果如下所示:
但是这种方式仅限于你自己写的小型模块,而不适用于所有模块。
最后需要说明的是,所有import语句都应当放在文件开始处,而不是哪里用,在哪里import。
模块本身就是一个命名空间。
?
?
?
?
?
?
?