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是基於一個團體分享知識的概念。