文章目录
- 1、当前代码中的函数与模块中的函数同名,导入模块
- 1.1、创建一个getenv.py代码文件作为模块。
- 1.2、创建信息调用模块
- 例1、调用模块中的函数被覆盖
- 例2、本地函数被覆盖
- 2、当前代码与模块不在同一路径下,导入模块
1、当前代码中的函数与模块中的函数同名,导入模块
1.1、创建一个getenv.py代码文件作为模块。
模块中创建一个函数,令其打印系统信息。
import platform #该模块用来访问平台相关属性
import sys #系统特定的参数和功能
import os #访问操作系统功能的模块
def showENV():
s = platform.platform()
print("当前系统:",s)
p = sys.path
print("当前安装路径:",p)
op = os.getcwd()
print("当前代码路径:",op)
print("Python版本信息:",sys.version_info)
if __name__ == '__main__': #进行模块的单元测试
showENV()
上面代码中最后两行为测试代码,使得该模块可以作为一个独立运行的程序。
输出结果为:
1.2、创建信息调用模块
import getenv #导入自定义模块getenv
def showENV(): #实现同名函数showENV
print("this is my env")
showENV() #调用本地函数
getenv.showENV() #调用getenv模块里的函数
上面代码的最后两行,分别调用了本地函数和自定义模块里面的函数。
输出结果为:
注意:python中符号生效的规则是“就近”。即调用函数时,系统会寻找离函数最近的代码定义来执行。所以在调用其他模块中的同名函数时,要注意函数覆盖问题。
例1、调用模块中的函数被覆盖
#模块函数被覆盖
from getenv import * #导入getenv的全部符号
def showENV():
print("this is my env")
showENV()
输出结果:
例2、本地函数被覆盖
#本地函数被覆盖
def showENV():
print("this is my env")
from getenv import *
showENV()
输出结果:
2、当前代码与模块不在同一路径下,导入模块
在当前代码同级目录下,新建一个文件夹mode,将定义好的模块“getenv.py”移动到文件夹mode中。
import mode.getenv as getenv #导入自定义模块getenv
def showENV(): #实现同名函数showENV
print("this is my env")
showENV() #调用本地函数
getenv.showENV() #调用getenv模块里的函数
输出结果: