pythonimport
① python中import 点的作用
是指在当前目录,相对路径下import某个模块。 import 非常规的常见的用法有:
1、在sys.path里加入你要引用的目录,甚至 ../的绝对目录都可以。
2、absolute_import,可以按绝对路径import某个模块, 实际上这个东西好象不起作用。
至于from .XXX import yyy这种用法,在老的代码里还是常见。其实没有必要。因为import 本身就有这个功能。或者是用更直观的方法importlib.import_mole(mole,parent)这样不容易犯错误。
(1)pythonimport扩展阅读:
工作原理:
关于这两种导入类型大家各有所爱,众说纷纭。这里分析一下这两种导入类型的大致工作原理供大家参考。
单类型导入
单类型导入比较好理解,仅仅导入一个public类或者接口。而对于按需类型导入,有人误解为导入一个包下的所有类,其实不然,看名字就知道,他只会按需导入,也就是说它并非导入整个包,而仅仅导入当前类需要使用的类。
java编译器会从启动目录(bootstrap),扩展目录(extension)和用户类路径下去定位需要导入的类,而这些目录仅仅是给出了类的顶层目录。
② python import是什么
Python的import是一个使用非常频繁的操作,这是在一个模块中使用另一个模块的代码的操作(几乎所有的语言都有类似的语句)。import语句是最常用的方法,但不是唯一的方法,还有importpb.import_mole() 和 __import__() 等。
import做了两件事情:
● 搜索该名字的mole(其实使用的还是内置的__import__()方法)然后初始化一个对象
● 将结果与本地的一个变量名绑定(默认就是这个mole的名字)。
意味着,这两句是等价的:import package as pk 和 pg = __import__('package')
值得注意的是,只调用__import__()只会执行搜索动作,初始化mole对象,最后丢掉该对象(因为没有赋值操作)。这点很容易将内置的__imoprt__()方法和import语句搞混。
相关推荐:《Python教程》以上就是小编分享的关于python import是什么的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!
③ import在python中的意思
python中的"import"表示导入的意思。
python中的"import"一般用于导入一些函数库,以便于在下面的程序中调用导入的函数库里面的函数,类似于c++编程语言里面的include。通常模块为一个文件,直接使用import来导入就好了。可以作为mole的文件类型有".py"、".pyo"、".pyc"、".pyd"、".so"、".dll"。
import语句的用途和注意事项
1、通过一定的方式,搜寻要导入的文件。
2、如果需要,就编译这个文件。
3、运行这个文件。
但是需要注意的是所有这三个步骤,都只是文件再第一次导入的时候才会执行,如果文件已经导入了,后续的import会直接从内存里面找到已经加载的模块使用,换句话说此时import不会执行上面的3个步骤。
④ Python 中的import 机制
解释器 在执行语句时,遵循作用域原则。因为这和作用域有关系, 如果在顶层导入模块,此时它的作用域是全局的;如果在函数内部导入了模块,那它的作用域只是局部的 ,不能被其它函数使用。如果其它函数也要用到这个模块,还需要再次导入比较麻烦。
在用import语句导入模块时最好按照这样的顺序:
绝对路径 就是文件的真正存在的路径,是指从硬盘的根目录(盘符)开始,进行一级级目录指向文件。
相对路径 就是以当前文件为基准进行一级级目录指向被引用的资源文件。
以下是常用的表示当前目录和当前目录的父级目录的标识符
形如from moleB import ClassB语句,根据Python内部import机制,执行细分步骤:
总结:from moleB import ClassB有两个过程,先from mole,后import ClassB。
当然将moleA.py语句 from moleB import ClassB改为:import moleB,将在第二次执行moleB.py语句from moleA import ClassA时报错:ImportError: cannot import name ‘classA’
在一个文件下同时有 init .py文件、和其他模块文件时,该文件夹即看作一个包(package)。包的导入 和模块导入基本一致,只是导入包时,会执行这个 init .py,而不是模块中的语句。
而且,如果只是单纯地导入包【形如:import xxx】,而包的 init .py中有没有明确地的其他初始化操作,则:此包下的模块 是不会被自动导入的。当然该包是会成功导入的,并将包名称放入当前.py的Local命名空间中。
参考文章:
Python中import机制
Python 3.x可能是史上最详解的【导入(import)】
在Python中以绝对路径或者相对路径导入文件的方法
Python的模块引用和查找路径
⑤ python import 路径问题 新手
以下为纯手打,下面给几个demos:
说明:
moles所在的目录在python里叫package, 下面是一个名为 IsDir的package(实际上就是一个目录), package下面有4个moles(A, B, C, D)和一个__init__.py文件,目录结构如下:
IsDir/
A.pyB.pyC.pyD.py__init__.py
大体来讲,有两种方法可以调用某目录下(包括递归目录)的moles.
一. __init__.py为空时
1.1以下为调用moleA的代码:
#!/usr/bin/envpython
fromIsDirimportA
A.say()
输出:
ThisismoleA!
1.2 如果想调用moleA,B,C,D呢?
方法1.
#!/usr/bin/envpython
fromIsDirimportA
fromIsDirimportB
fromIsDirimportC
fromIsDirimportD
A.say()
B.say()
C.say()
D.say()
方法2.
#!/usr/bin/envpython
importIsDir.A
importIsDir.B
importIsDir.C
importIsDir.D
fromIsDirimport*
A.say()
B.say()
C.say()
D.say()
错误示例1:
#!/usr/bin/envpython
importIsDir.A
A.say()
错误示例2:
#!/usr/bin/envpython
fromIsDirimport*
A.say()
错误的原因:
IsDir/目录下__init__.py为空时,直接importIsDir.A或者fromIsDirimport*是无效的.
从官方文档里可以看到,__init__.py 里没有__all__=[mole1,mole2,...]时,
fromIsDirimport* 只能保证IsDir被imported, 所以此时IsDir里的moles是无法被imported,
此时只有如我上面所写的代码所示才能正确执行,否则是错误的。官方解释为:importIsDir.A并无任何意义,只有接着执行fromIsDirimport*后,importIsDir.A语句里的moleA才会被定义,所以完整的调用因改为: 1. import IsDir.A 2. from IsDir import *。
二. __init__.py用all=[...]指定该package下可以被imported进去的mole
__init__.py里写入如下内容:
%catIsDir/__init__.py
__all__=["A","B"]
然后使用之:
#!/usr/bin/envpython
fromIsDirimport*
A.say()
B.say()
结果:
%pythontest.py
ThisismoleA!
ThisismoleB!
错误实例:
#!/usr/bin/envpython
fromIsDirimport*
C.say()
以上示例之所以错误,是因为C并没有在__all__=["A","B"]里制定,由此可见,packageIsDir下面的__init__.py里,__all__=[...]具有隔离moles的作用。
补充:
mole A, B, C,D里我分别只定义了一个method, 例如,以下为mole A的code:
%catIsDir/A.py
defsay():
print"ThisismoleA!"
后记:
谢谢这位同学,回答你的问题感觉很有收获,顺便又把python温习了一遍。回头把这些总结贴到我的blog上以上为手写,望采纳,共勉。
=============================================================
老子写了这么多居然采用了另一个简陋的答案,mlgb的,枉我熬夜给你答题。这种白痴楼主就不配在这里问问题。
⑥ python中import 点的作用
是指在当前目录,相对路径下import某个模块。
import
非常规的常见的用法有
在sys.path里加入你要引用的目录,甚至
../的绝对目录都可以。
、
absolute_import,可以按绝对路径import某个模块,
实际上这个东西好象不起作用。
至于from
.XXX
import
yyy这种用法,在老的代码里还是常见。其实没有必要。因为import
本身就有这个功能。或者是你用更直观的方法importlib.import_mole(mole,parent)这样不容易犯错误。
你可以看一下importlib.import_mole这个函数的帮助,就会明白。
比如一个工程,它有两个目录moles和common_lib,如果moles目录的脚本想引用common_lib里的内容,通常我会使用sys.path.add(os.path.abspath("../moles"))
from
.xxxx
import
yyyy
这种用法,我试验后发现只有在python
-m
parent.py的时候才起作用。
而且功能与from
xxxx
import
yyyy的功能完全相同。
⑦ python import什么意思
是指在当前目录,相对路径下import某个模块。 import 非常规的常见的用法有:
1、在sys.path里加入你要引用的目录,甚至 ../的绝对目录都可以。
2、absolute_import,可以按绝对路径import某个模块, 实际上这个东西好象不起作用。
至于from .XXX import yyy这种用法,在老的代码里还是常见。其实没有必要。因为import 本身就有这个功能。或者是用更直观的方法importlib.import_mole(mole,parent)这样不容易犯错误。
Random的作用
Random使用之前需要使用Randomize语句进行随机数种子的初始化。RANDOM产生的是伪随机数或者说是用一种复杂的方法计算得到的序列值,因此每次运算时需要一个不同的种子值。种子值不同,得到的序列值也不同。因此也就是真正的随机数了。
RANDOM产生的是伪随机数或者说是用一种复杂的方法计算得到的序列值,因此每次运算时需要一个不同的种子值。种子值不同,得到的序列值也不同。因此也就是真正的随机数了。这也正是RANDOMIZE随机初始化的作用。 VB里用 NEW RANDOM()来表示初始化。
⑧ 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 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中import是什么意思
Python中的import语句是用来调用模块的。
一、mole
通常模块为一个文件,直接使用import来导入就好了。可以作为mole的文件类型有"py"、".pyo"、"pyc"、"pyd"、"so"、"dll"。
二、package
通常包总是一个目录,可以使用import导入包,或者from + import来导入包中的部分模块。
包目录下为首的一个文件便是_init__py。然后是一些模块文件和子目录,假如子目录中也有_init__py那么它就是这个包的子包了。
优点
简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。
易学:Python极其容易上手,因为Python有极其简单的说明文档。
易读、易维护:风格清晰划一、强制缩进。
速度快:Python的底层是用C语言写的,很多标准库和第三方库也都是用C写的,运行速度非常快。
免费、开源:Python是FLOSS(自由/开放源码软件)之一。
使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。