当前位置:   article > 正文

Python 模块导入_import和from_import详解和区别_python import 和from

python import 和from

模块导入_import和from_import详解和区别

模块的导入

模块化设计的好处之一就是“代码复用性高”。写好的模块可以被反复调用,重复使用。模块的导入就是“在本模块中使用其他模块”。

import语句导入

import语句的基本语法格式如下:

import 模块名        #导入一个模块
import 模块1,模块2#导入多个模块
import 模块名  as 模块别名   #导入模块并使用新名字

  • 1
  • 2
  • 3
  • 4

import加载的模块分为四种类型:

  1. 使用python编写的代码.py文件

  2. 已被编译为共享库或DLL的C或C++扩展

  3. 一组模块的包

  4. 使用C编写并链接到python解释器的内置模块

我们一般通过import语句实现模块的导入和使用,import本质上是使用了内置函数__import__()

当我们通过import导入一个模块时,python解释器进行执行,最终会生成一个对象,这个对象就代表了被加载的模块。

import math
​
print(id(math))
print(type(math))
print(math.pi)  #通过math.成员名来访问模块中的成员

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

执行结果是:

31840800
<class 'module'>

  • 1
  • 2
  • 3

由上,我们可以看到math模块被加载后,实际会生成一个module类的对象,该对象被math变量引用。我们可以通过math变量引用模块中所有的内容。

我们通过import导入多个模块,本质上也是生成多个module类的对象而已。

有时候,我们也需要给模块起个别名,本质上,这个别名仅仅是新创建一个变量引用加载的模块对象而已。

import math as m
​
#import math
#m = mathprint(m.sqrt(4)) #开方运算

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

from…import导入

Python中可以使用from…import导入模块中的成员。基本语法格式如下:

from 模块名 import 成员1,成员2,…

如果希望导入一个模块中的所有成员,则可以采用如下方式:

from 模块名 import *

⚠️尽量避免from 模块名 import *这种写法。*它表示导入模块中所有的不是以下划线_开头的名字都导入到当前位置。 但你不知道你导入什么名字,很有可能会覆盖掉你之前已经定义的名字。而且可读性极其的差。一般生产环境中尽量避免使用,学习时没有关系。

【示例】使用from…import导入模块指定的成员

from math import pi,sin
​
print(sin(pi/2))  #输出1.0

  • 1
  • 2
  • 3
  • 4

import语句和from…import语句的区别

import导入的是模块。from...import导入的是模块中的函数/类。

❤️如果进行类比的话,import导入的是“文件”,我们要使用该“文件”下的内容,必须前面加“文件名称”。from...import导入的是文件下的“内容”,我们直接使用这些“内容”即可,前面再也不需要加“文件名称”了。

我们自定义一个模块calculator.py

"""一个实现四则运算的计算器"""def add(a,b):
  return a+b
​
def minus(a,b):
  return a-b
​
​
class MyNum():
  def print123(self):
    print(123)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

我们在另一个模块test.py测试:

import calculator
​
a = calculator.add(30,40)
# add(100,200)    #不加模块名无法识别
print(a)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
from calculator import *
​
a = add(100,200)  #无需模块名,可以直接引用里面的函数/类
print(a)
​
b = MyNum()
b.print123()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/657911
推荐阅读
相关标签
  

闽ICP备14008679号