赞
踩
对于很多向我一样的初学者来说,不知道什么时候用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的区别,如果帮助到你还是老规矩,先赞,再看,后评论!!!
今日一笑:
地理老师问:“河水往哪里流啊?”
一学生猛站起来唱到:“大河向东流啊! ”
老师没理会他接着说:“天上有多少颗星星阿?”
那学生又唱到:“天上的星星参北斗阿! ”
老师气急:“你给我滚出去! ”
学生:“说走咱就走阿! ”
老师无奈:“你有病吧?”
学生:“你有我有全都有阿! ”
老师:滚
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。