Python——import导入模块

Python导入第三方库或者使用标准库。

如使用数学函数,import math ,如余弦函数cos,绝对值函数fabs();import numpy as np,解决矩阵数组问题等。

import主要有以下两种用法:

  • import 模块名1 [as 别名1], 模块名2 [as 别名2],…:
  • 使用这种语法格式的 import 语句,会导入指定模块中的所有成员(包括变量、函数、类等)。 使用该模块的成员时,需要用该模块名或者别名加前缀;
import math
math.ceil()
import numpy as np
np.array()
  • from 模块名 import 成员名1 [as 别名1],成员名2 [as 别名2],…:
  • 使用这种语法格式的 import 语句,只导入模块中指定的成员,而不是全部成员。 使用该模块中的成员时,直接使用成员名(或别名)即可,无需附加任何前缀。

注意1:这里用 [] 括起来的部分不是必要的,即as 别名部分,可用也可省略。

注意2:若想导入指定模块中所有成员,可用Import 模块名 或者 from 模块名 import *。但第二种方式不推荐使用,具体原因本节后续会做详细说明。

一、import 模块名 as 别名

导入指定模块中的 所有成员(包括变量、函数、类等);

使用指定模块中成员, 添加模块名作为前缀

1、导入单个模块

eg1:导入 sys 模块;使用 sys 模块内的成员argv变量;

(sys 模块下的 argv 变量用于获取运行 Python 程序的命令行参数,其中 argv[0] 用于获取当前 Python 程序的存储路径)

导入sys整个模块
import sys
使用sys模块名作为前缀来访问模块中的成员
print(sys.argv[0])

输出:

d:/python documents/遗传算法底层实现/ceshi2.py #返回当前Python程序的存储路径——ceshi2.py

eg2:导入 sys 模块;指定别名s;使用 sys 模块内的成员argv变量;

导入sys整个模块,并指定别名为s
import sys as s
使用s模块别名作为前缀来访问模块中的成员
print(s.argv[0])

输出:

d:/python documents/遗传算法底层实现/ceshi2.py #返回当前Python程序的存储路径——ceshi2.py

2、导入多个模块,多个模块之间用逗号隔开

eg3:导入sys和os两个模块,使用 sys 模块内的成员argv变量,使用os模块内的成员sep 变量;

(sys 模块下的 argv 变量用于获取运行 Python 程序的命令行参数,其中 argv[0] 用于获取当前 Python 程序的存储路径)

(os 模块的 sep 变量代表平台上的路径分隔符)

导入sys、os两个模块
import sys,os
使用模块名作为前缀来访问模块中的成员
print(sys.argv[0])
os模块的sep变量代表平台上的路径分隔符
print(os.sep)

输出:

d:/python documents/遗传算法底层实现/ceshi2.py
\

eg4:导入sys和os两个模块,指定别名s,o;使用 sys 模块内的成员argv变量,使用os模块内的成员sep 变量;

导入sys、os两个模块,并为sys指定别名s,为os指定别名o
import sys as s,os as o
使用模块别名作为前缀来访问模块中的成员
print(s.argv[0])
print(o.sep)

输出:

d:/python documents/遗传算法底层实现/ceshi2.py
\

二、from 模块名 import 成员名 as 别名

导入指定模块中的指定成员:

使用指定模块中成员,直接使用无须前缀;

eg1:导入 sys 模块;使用 sys 模块内的成员argv变量;

导入sys模块的argv成员
from sys import argv
使用导入成员的语法,直接使用成员名访问
print(argv[0])

输出:

d:/python documents/遗传算法底层实现/ceshi2.py #返回当前Python程序的存储路径——ceshi2.py

eg2: 导入 sys 模块;使用 sys 模块内的成员argv变量;指定别名v;

导入sys模块的argv成员,并为其指定别名v
from sys import argv as v
使用导入成员(并指定别名)的语法,直接使用成员的别名访问
print(v[0])

输出:

d:/python documents/遗传算法底层实现/ceshi2.py #返回当前Python程序的存储路径——ceshi2.py

导入单个模块中的多个成员;

eg3:导入 sys 模块;使用 sys 模块内的成员argv和winver成员;

(sys 的 winver 成员记录了该 Python 的版本号)

导入sys模块的argv,winver成员
from sys import argv, winver
使用导入成员的语法,直接使用成员名访问
print(argv[0])
print(winver)

输出:

C:\Users\mengma\Desktop\hello.py
3.9

导入单个模块中的多个成员,并指定别名;

eg4:导入 sys 模块;使用 sys 模块内的成员argv和winver成员;并分别指定别名v、wv;

(sys 的 winver 成员记录了该 Python 的版本号)

导入sys模块的argv,winver成员,并为其指定别名v、wv
from sys import argv as v, winver as wv
使用导入成员(并指定别名)的语法,直接使用成员的别名访问
print(v[0])
print(wv)

三、不推荐使用 from 模块 import * 导入模块所有成员

from 模块名 Import * 可以一次导入指定模块内的所有成员,如:

#导入sys 棋块内的所有成员
from sys import *
#使用导入成员的语法,直接使用成员的别名访问
print(argv[0])
print(winver)

问题:如同时导入 module1 和 module2 内的所有成员,假如这两个模块内都有一个 foo() 函数

from module1 import *
from module2 import *
foo()    #无法区分是Module1还是Module2的成员

改进:

#法一:
from module1 import foo as foo1
from module2 import foo as foo2
foo1()    # module1模块
foo2()    # module2模块
#法二:
import module1 as m1
import module2 as m2
m1.foo()    # module1模块
m2.foo()    # module2模块

Original: https://blog.csdn.net/qq_43087912/article/details/124648514
Author: vivia_2219
Title: Python——import导入模块

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/760495/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球