1. 程式人生 > >Java&Python 中import的區別

Java&Python 中import的區別

一、區別

2、Python的import本質是執行了整個模組的程式碼(python只能匯入模組,from語句例外)
Java在import類的時候,並不執行類程式碼,也不把類載入進記憶體,所以說import語句對於java來說只在編譯器起作用,執行期就沒用了。

python在import模組的時候,是執行了模組的所有程式碼。這裡有兩種理解方式都正確:一種是程式碼執行完後,產生了一個模組物件,以後通過這個模組物件訪問所有的模組裡定義的成員。另一種是程式碼執行完後,並沒有產生一個模組物件(或者僅僅認為產生了一個非常簡單的不帶要任何成員的物件),但程式碼裡面定義的所有成員前面自動加上了名稱空間。以上兩種理解方式都可以幫助理解程式碼(不同的書講的不一樣)。但是我更傾向於第一張理解方式,因為模組的作用就是為了封裝和程式碼的重用,而包的主要作用才是名稱空間。【其實,Java中的名字空間即包名是虛的,不是一個實體,只起到姓氏的作用;而Python中的名字空間即模組名是實的,是一個真正的實體,就好像是個類一樣,只不過是比類更高階的一層封裝,它可以封裝類、變數、函式等。】

【總之,Java中包直接管理到類,而在Python中包直接管理到模組】

二、關於import

1、import

# 用法
import module
關鍵字 模組名
# 同時匯入多個模組,使用 , 隔開
import module1,module2,module3

import 模組名稱 可以放在檔案開頭,也可以放在方法內部。這和作用域有關係,放在開頭代表它的作用域是全域性的。放在方法內部代表它的作用域是區域性的

2、from-import 語句

# 用法
from module import name
關鍵字 模組名 關鍵字 方法名
使用這種方式匯入可以直接使用 匯入的內容

相關推薦

Java&Python import區別

一、區別 2、Python的import本質是執行了整個模組的程式碼(python只能匯入模組,from語句例外) Java在import類的時候,並不執行類程式碼,也不把類載入進記憶體,所以說import語句對於java來說只在編譯器起作用,執行期就沒

java,python 的list和陣列的區別

java    陣列 列表 備註 結構 線性結構 線性結構 儲存位置 記憶體中的棧區 記憶體中的堆區 儲存方式 靜態連續

pythonimport和from-import區別

. import匯入模組的路徑兩種方式 # 將模組所在路徑再程式中新增到sys.path列表中 import sys sys.path import匯入模組按照sys.path順序依次查詢,“”代表當前路徑 # 修改作業系統的PYTHON_PATH環境變數 #

import,reload,__import__在python區別

import作用: 匯入/引入一個python標準模組,其中包括.py檔案、帶有__init__.py檔案的目錄。e.g:import module_name[,module1,...] from module import *|child[,child1,...]說明:

python import 和from ... import區別

先看一個例子: 我自定義的一個moudle,裡面有一個方法sayhi,還有一個變數version #!/usr/bin/env python # coding=utf-8 # File

pythonimport和from import區別

前些日子看到知乎上有人把import比作一輛車,把from import比作車子裡面的礦泉水 我覺得這比喻還可以,但是首先得確定你是一個缺水的人,你渴你正要礦泉水,而不是什麼咖啡牛奶 先舉一個大家都清楚的例子: >>> import datetime

pythonimport或from使用及模塊和包的使用總結

python模塊 python包 python import與from __all__使用一、簡介1、模塊(module):根據python官方的解釋,所謂模塊就是一個.py文件,用來存放變量,方法的文件,便於在其他python文件中導入(通過import或from);2、包(package): 包是更大的

pythonimport自己寫的.py

在使用python來處理資料時,經常需要使用到讀取文字和寫入文字的with open,如果將這兩個語句寫入一個.py檔案中,那麼每次需要讀取或者寫入文字時,只需要import就可以了。 import codecs #防止編碼問題 然後將其儲存為.py檔案,命名隨意,我

C++/JAVA/Python聯絡與區別

總而言之: python:適合小工具小程式快速開發,無論是網站還是小遊戲都非常方便。但python的指令碼的執行效率較低,不適合對執行效率要求較高的程式; JAVA:採用嚴格的面向物件程式設計方法,同

pythonimport caffe與import matplotlib.pyplot as plt衝突的解決辦法

最近在python中用caffe跑網路,想寫個實時顯示準確率,testl-oss,train-loss的功能。這個時候需要呼叫import caffe和import matplotlib.pyplot as plt,可是發現老是出現“ImportError: DLL load

pythonimport的機制

引子:python中 from . import ×××的那個點是表示當前包嗎?   我的理解是 from . import XXX預設的就是在當前程式所在資料夾裡init.py程式中匯入XXX,如果當前程式所在資料夾裡沒有init.py檔案的話,就不能這樣寫

pythonimport libvirt異常解決辦法

來源自我的部落格 安裝多版本python後,會因為libvirt從yum安裝產生在其他版本python中import libvirt異常的問題 ImportError: /usr/lib

python import 的跨資料夾使用

轉自https://blog.csdn.net/xm_csdn/article/details/52211079python實現不同層級目錄import 模組的方法python目前也像php一樣越來越多的朋友使用它了,今天 小編在學習python時碰到不同層級引用的問題,希望

javaimport機制(指定importimport *的區別)

dem single boot 路徑 list http 簡單 至少 package 轉自:https://www.cnblogs.com/dtts/p/4692480.html java中有兩種包的導入機制,總結如下: 單類型導入(single-type-i

javaimport static和import區別

import static(靜態匯入)是JDK1.5中的新特性,一般我們匯入一個類都用 import com.....ClassName;而靜態匯入是這樣:import static com.....ClassName.*;這裡多了個static,還有就是類名ClassNam

Pythonfrom...importimport......as的區別

from...import 如 from A import b,相當於 import A b=A.b 再如: "from t2 import var1" 相當於: import t2 var1= t2

python模組匯入語句 from ..import ..與from import as的區別

from...import 如 from A import b,相當於 import A b=A.b 再如: "from t2 import var1" 相當於: import t2 var1= t2.var1 在此過程中有一個隱含的賦值的過程 import.

python__import__與import區別

最近在閱讀一些python程式碼,發現有的專案裡面不直接使用“import”,而是通過“__import()__”函式來匯入模組。 那麼這兩者究竟有什麼不同呢?  import匯入的是一個標準模

Pythonsort()和sorted()的區別

-s 可變對象 傳遞 內置函數 ict pan 16px nbsp lin 1、sort()是可變對象(字典)的方法,無參數,無返回值, sort()會改變可變對象,因此無需返回值。例如: list: 1 >>> a = [4,3,7,8] 2 >

JS 的require 和 import 區別

js模塊化 version 函數名 比較 extc 做到 logs imp 變量 在研究react和webpack的時候,經常看到在js文件中出現require,還有import,這兩個都是為了JS模塊化編程使用。CSS的是@import 1.ES6 模塊的設計思想,是盡量