当前位置:   article > 正文

【Python】一文带你区别import与from import,理解“模板”_import from import 区别

import from import 区别

对于很多向我一样的初学者来说,不知道什么时候用import xxx,什么时候用from xxx import xxx,

或者是from x.y import xxx?通常我们导入的模块是系统自带模块,第三方库和自定义模块,那么我们就从这三方面来说。

一,系统自带模块

用我们常见math模块来解释

#例一
import math
a=math.cos(5)

print(a)

有的时候是这样引用

#例二

from math import cos        #引用三角函数的时候不用加上()

a=cos(5)

print(a)

例一导入的是math的factorial函数,例二导入的是math里的三角函数 。那么他们们的区别是什么呢?看看下边的例子

 很显然,import引入的是模块math,它是一个module类,from import引入的是模块里的sin()函数,它是一个function或method类。

如果你的代码里边已经决定就使用这一个sin()函数了,那么这两种方法都可以用,没有区别。

import math

a=math.sin(5)

from math import sin

a=sin(5) 

 但是如果你用math里边的多个函数或方法,那么第一种方法更加清晰一点

import math

a=sin(5)+cos(5)

相反的话就是

from math import sin,cos

a=sin(5)+cos(5)

二,第三方库

如果使用的第三方库的话,我们也会看见如下的代码

 from lxml.html import fromstring
 
 selector = fromstring(HTML)

也可以写成

 from lxml import html
 
selector = html.fromstring(HTML)  

但是,如果这样写的话会报错

import lxml
selector = lxml.html.fromstring(HTML)

那么这里的lxml.html又是什么东西呢?

这种情况多常见于一些特别大型的第三方库中,这种库能处理多种类型的数据。例如lxml它既能处理xml的数据,又能处理html的数据,于是这种库会划分子模块,lxml.html模块专门负责html相关的数据。

三,自定义模块

要先理解自定义模块,先来理解一下模块与包的定义

1、模块、包
模块 module:一般情况下,是一个以.py为后缀的文件。
module 可看作一个工具类,可共用或者隐藏代码细节,将相关代码放置在一个module以便让代码更好用、易懂,让coder重点放在高层逻辑上。
module能定义函数、类、变量,也能包含可执行的代码。module来源有3种:
①Python内置的模块(标准库);②第三方模块;③自定义模块。

包 package: 为避免模块名冲突,Python引入了按目录组织模块的方法,称之为 包(package)。包 是含有Python模块的文件夹

即包相当于一个文件夹,模块相当于文件夹里的文件,文件内容是代码块,便于引用。

先创建一个包(文件夹)CSDN,在里边加入了main.py和Tuster_.py模块

在Tuster_.py模块中,定义模块中的函数write,每次调用write函数都会打印‘write函数被调用’

在main.py模块中,调用Tuster_模块的write函数


 

 这样就可以调用我们自己定义的模块啦!!!可以根据需要自己定义自己模板,并填充代码块,达到让主体代码更加简洁,隐藏部分代码,可读性更加高的目的啦!!!

结语:希望能够帮助你更好的理解import与from import的区别,如果帮助到你还是老规矩,先赞,再看,后评论!!!

今日一笑:

地理老师问:“河水往哪里流啊?”

一学生猛站起来唱到:“大河向东流啊! ”

老师没理会他接着说:“天上有多少颗星星阿?”

那学生又唱到:“天上的星星参北斗阿! ”

老师气急:“你给我滚出去! ”

学生:“说走咱就走阿! ”

老师无奈:“你有病吧?”

学生:“你有我有全都有阿! ”

老师:滚

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

闽ICP备14008679号