Python导入模块的两种核心语法与别名用法详解
本文详解Python中导入模块的两种核心语法:直接导入整个模块与导入指定成员。重点解析import语句中模块别名的设置方法,以及使用from...import时前缀使用的区别。通过sys和os模块实例演示命令行参数获取与路径分隔符访问,并附带自动安装缺失库的扩展技巧,帮助开发者规范使用Python导入机制。
Python导入模块的两种核心语法
在Python中,使用import关键字导入模块主要遵循两种语法格式:
import 模块名1 [as 别名1], 模块名2 [as 别名2],…: 导入整个模块。
from 模块名 import 成员名1 [as 别名1],成员名2 [as 别名2],…: 导入模块中指定成员。
上述两种 import 语句在行为上存在以下主要区别:
第一种 import 语句会将模块内的所有成员(涵盖变量、函数、类等)全部导入;第二种 import 语句仅导入模块内指定的成员(若使用 from 模块名 import * 则导入所有成员,但通常不建议采用此写法)。
python学习网,大量的免费python视频教程,欢迎在线学习!
采用第一种 import 语句导入模块成员时,调用时必须添加模块名或模块别名作为前缀;而使用第二种 import 语句导入成员时,无需任何前缀,直接通过成员名或成员别名即可访问。
以下程序展示了使用最简语法导入指定模块的方法:
导入整个模块与别名设置
# 导入sys整个模块
import sys
# 使用sys模块名作为前缀来访问模块中的成员
print(sys.argv[0])
代码第 2 行以最简方式导入了 sys 模块,因此在后续程序中调用 sys 模块内的成员时,必须显式添加模块名作为前缀。
执行上述程序,可见如下输出结果(sys 模块下的 argv 变量用于获取运行 Python 程序的命令行参数,其中 argv[0] 用于获取该 Python 程序的程序名)。
import test.py
在导入整个模块时,允许为模块指定别名。参考如下程序:
# 导入sys整个模块,并指定别名为s
import sys as s
# 使用s模块别名作为前缀来访问模块中的成员
print(s.argv[0])
第2行代码在导入 sys 模块时指定了别名 s,因此在程序中调用 sys 模块内的成员时,必须添加模块别名 s 作为前缀。运行该程序,可见如下输出结果:
import test2.py
使用导入整个模块的语法,还可以一次性导入多个模块,各模块之间以逗号分隔。参考如下程序:
多模块一次性导入
# 导入sys、os两个模块
import sys,os
# 使用模块名作为前缀来访问模块中的成员
print(sys.argv[0])
# os模块的sep变量代表平台上的路径分隔符
print(os.sep)
知识点扩展:
自动导入任意缺失的库实例方法:
自动安装缺失库的扩展技巧
# 以下代码在 python 3.6.1 版本验证通过
import sys
import os
from importlib import import_module
class AutoInstall():
_loaded = set()
@classmethod
def find_spec(cls, name, path, target=None):
if path is None and name not in cls._loaded:
cls._loaded.add(name)
print("Installing", name)
try:
result = os.system('pip install {}'.format(name))
if result == 0:
return import_module(name)
except Exception as e:
print("Failed", e)
return None
sys.meta_path.append(AutoInstall)
到此这篇关于python导入库的具体方法的文章就介绍到这了,更多相关python如何导入库内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













