python中from
① 请教一个python问题:from XXX import XXX
你可以理解为:
对于:
from lxml import etree
是
from Mole import Function或Class等
这个只是从模块中导入一个或几个函数或类的做法。
另外一个常见的是
import Mole
你这里就是:
import lxml
是把整个模块中得东西,包括上面那单个etree都导入->所以你后面的程序就都可以使用了。
更多解释,可参考:
【教程】Python中的内置的模块 和第三方的模块
【已解决】Python中导入子文件夹中的模块
(此处不给贴地址,请自己用google搜标题,就可以找到地址了)
============
“xml.etree.ElementTree这是什么格式?”
可以看做是:
package.mole.function
或
package.mole.attribute
"ElementTree是一个mole,etree是一个package?"
你的理解错了。
同上,ElementTree是一个function或attribute
etree是一个mole
“那xml是什么?”
xml是package
详细解释,自己看:
【整理】Python中的mole,library,package之间的区别
② python from import 和 import 区别
python中有两种导入模块的方式,一种是import xxx,另一种是from xxx import yyy,两者的区别在于,第一种仅仅导入一个模块,并且将该模块执行了一遍,if __main__ =="__main__"里面的没有执行。
同时,有在当前的命名空间中导入变量,需要通过xxx.yyy的方式使用导入模块中的变量、函数、类等;
第二种则将模块中的变量yyy导入了当前命名空间,因此使用时可以直接以yyy调用,使用这种导入方法时,需要注意当前的命名空间是否有重名的,from xxx import *这种方式尽量不要使用,因为这样就破坏了对命名空间的管理。
ps:使用from xxx import *时是不能导入以单下划线开头的保护属性和以双下划线开头的私有属性的
③ Python的from import和import的区别
一、import和from import的区别:
import 只能导入模块、子包、包, 而不能导入模块中的类、函数、变量等
from import 可以导入模块、子包、包、类、函数、变量以及在包的__init__.py中已经导入的名字
ps: 但是两者都可以用as给导入的名字重命名
二、包导入的注意事项
不能在导入的路径中使用已经导入过的名字, 比如 import numpy as np; import np.random as rn, 这会报错, 说没有找到名字叫np的model, 这其实就说明python寻找包路径的时候, 是在文件系统中寻找, 而不包含当前命名空间中的名字, 即与当前的程序执行环境没有关系的
导入一个包时, 则这个包可用的属性都必须在__init__.py文件中定义, 这就是说如果一个包的__init__.py文件是空的, 则即使包里边有几个模块文件, 也无法通过这个包名去使用, 比如pkg下有a.py和b.py两个文件, 但是__init__.py中没有导入模块a和b,则import pkg as pg 后, 无法使用pg.a和pg.b,这个说明包内的模块和子包不会自动加入到包的名字空间里边, 需要手动通过__init__.py指定后才会加入。这一点上模块和包不太一样, 模块中的符号是自动导入的,因此可以直接通过模块名来调用
第2点只是说无法通过pg这个名字来使用模块a和b, 但是我们可以手动导入a和b的, 用import pkg.a as a和from pkgs import a as a都是可以的
导入一个长串的路径时, 则这个路径上的所有包的__init__.py都会被执行, 并且包的对应子包也会被加入到包的属性中去, 比如我们现在有这样一个包结构: pkgs下有两个子包pkga和pkgb, 且pkgs/init.py是空文件,则import pkgs语句是无法使用pkgs.pkga这样的句子的, 但是如果我们后续又使用了一个import语句: import pkgs.pkga.a as a,则此时pkgs的名字空间里会加入pkga这个属性,也就是可以使用pkgs.pkga了
ps: from pkgs.pkga.a import fun_a这种长路径形式, 虽然会执行pkgs和pkga的__init__.py以及模块a的代码,
④ python import 和 from XX import * 的区别
一、作用不同
1、import:可以修改模块对象的属性,无论属性是不是可变类型。
2、from XX import * :只能修改模块对象的属性是可变类型的,不可变类型不能修改。
二、用法不同
1、import:import xx,以import time和创建的一个python类为例:调用time模块中的方法时,需要在前加上time.;而调用类中的方法时,也需要在前面加上实例名aa。
2、from XX import * :使用这种方式,则可以直接调用。
三、特点不同
1、import:所有导入的类使用时需加上模块名的限定。
2、from XX import * :所有导入的类不需要添加限定。
⑤ 关于PYTHON语言中from...import...的疑问
简单说说python import与from…import….(python模块)
在python用import或者from…import来导入相应的模块。模块其实就一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入到我们的程序中,我们就可以使用了。这
类似于C语言中的include头文件,Python中我们用import导入我们需要的模块。
⑥ python中from import的问题
1、*就是通配,就是导入Blender的全部的模块
2、用import Blender,下面的函数和数据前面都要加Blender.XXXXXX
而用from Blender import * 就可以直接XXXXXX,而不需要Blender.了
3。 提供支持的:
import Blender
from Blender import *
from Blender import bpy
4。你既然使用Python了,那么一定有自带的Manuals,那个6.4. Packages里面就介绍了import的各种用法。一下是里面的举例:
import sound.effects.echo
from sound.effects import echo
from sound.effects.echo import echofilter
import sound.effects.echo
import sound.effects.surround
from sound.effects import *
from . import echo
from .. import formats
from ..filters import equalizer
⑦ python中from time import sleep是什么意思
from time import sleep就是从time模块中引入sleep函数,使用sleep函数可以让程序休眠(推迟调用线程的运行)。
具体方法:
1,sleep(时间)。
2,#如果之前引入了time模块,使用time.sleep(时间)语句即可,不需要import这个语句。
3,#具体用法见下其中“时间”以秒为单位,可以是小数,0.1秒则代表休眠100毫秒。
(7)python中from扩展阅读:
使用Python编程时的注意事项:
1,初始变化量:
在Python里,一个表达式中的名字在它被赋值之前是没法使用的。这是有意而为的:这样能避免一些输入失误,同时也能避免默认究竟应该是什么类型的问题(0,None,””,[],?)。记住把计数器初始化为0,列表初始化为[],以此类推。
2,从第一列开始:
确保把顶层的,未嵌套的代码放在最左边第一列开始。这包括在模块文件中未嵌套的代码,以及在交互提示符中未嵌套的代码。Python使用缩进的办法来区分嵌套的代码段,因此在代码左边的空格意味着嵌套的代码块。除了缩进以外,空格通常是被忽略掉的。
3,缩进一致:
在同一个代码块中避免讲tab和空格混用来缩进,除非知道运行自己的代码的系统是怎么处理tab的。否则的话,在自己的编辑器里看起来是tab的缩进也许Python看起来就会被视作是一些空格。保险起见,在每个代码块中全都是用tab或者全都是用空格来缩进;用多少由自己决定。
4,在函数调用时使用括号:
无论一个函数是否需要参数,必须要加一对括号来调用它。即,使用function(),而不是function。Python的函数简单来说是具有特殊功能的对象,而调用是用括号来触发的。像所有的对象一样,它们也可以被赋值给变量,并且间接的使用它们:x=function:x()。
⑧ python中fromstring怎么用
fromstring() 可以在解析xml格式时,将字符串转换为Element对象,解析树的根节点。
在python中,对返回的page.txt做fromstring()处理,可以方便进行后续的xpath定位等。
如:
page = requests.get(url)
data = html.fromstring(page.txt)
getData = data.xpath('........')
⑨ python中 from import ×××的那个点是表示当前包吗
from
.
import
XXX默认的就是在当前程序所在文件夹里__init__.py程序中导入XXX,如果当前程序所在文件夹里没有__init__.py文件的话,就不能这样写,而应该写成from
.A
import
XXX,A是指当前文件夹下你想导入的函数(或者其他的)的python程序名,如果你想导入的函数不在当前文件夹,那么就有可能用到
from
..
import
XXX(即上一个文件夹中的__init__.py),或者from
..A
import
XXX(即上一个文件夹中的文件A)