1. 程式人生 > >python中 import 和from ... import 的區別

python中 import 和from ... import 的區別

先看一個例子:
我自定義的一個moudle,裡面有一個方法sayhi,還有一個變數version

#!/usr/bin/env python   
# coding=utf-8   

# Filename: mymodule.py

def sayhi():
    print 'Hi this is mymodule speaking'

version='1.0'

引用這個module的兩種方式

#!/usr/bin/env python   
# coding=utf-8   

# 方式一
import mymodule

mymodule.sayhi()
print 'Version '
,mymodule.version #方式二 # from mymodule import sayhi,version # sayhi() # print 'Version',version

這兩種方式都能正常執行,並且結果都一樣,

  • 如果使用import的話,就需要使用匯入的module名稱來引用模組的方法,成員變量了
  • 如果使用from … import 就可以直接使用該模組中的方法 成員變量了

可以理解為 from … import 是java中的靜態匯入,而import 語句就是java中的正常匯入

一般來說,應該避免使用from … import 而使用import語句,因為這樣可以使你的程式更加易讀,也可以避免名稱衝突

來源於 簡明 python 教程

相關推薦

pythonimportfrom-import區別

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

python import from ... import區別

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

pythonimportfrom import區別

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

用一個簡單小程式談importfrom...import區別

今天在自己寫程式碼的過程中,設計到隨機種子數量(引數),因為一個檔案中可能用到這個引數不止一次甚至是不止一個檔案會用到這個引數。對於訓練一個數據集來說,如果當你的效能跑的差不多的話,肯定會改這個引數,那如果你在函式中給這個引數直接賦了值,後期改的時候牽動會很大,所以這個時候就要想著在另一個檔案中單獨定義這個引

python的模組包機制:importfrom..import..

一. 兩個概念: 1.module A module is a file containing Python definitions and statements. 所以module就是一個.py檔案 2.package Packages are a way of str

Pythonsort()sorted()的區別

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

pythonreturnprint的區別

bsp 不同 urn text 一是 什麽 cnblogs style c99 之前遇到這個問題,就試著對比幾種不同的結果,總結啦一下return和print的區別。 總結: return的作用之一是返回計算的值print的作用是輸出數據到控制端在第一個結果中什麽都沒

Python IteratorIterable的區別

pytho 數據 執行 next 判斷 -h 實現 col http (轉載:http://blog.csdn.net/passionkk/article/details/49929887) Python中 list,truple,str,dict這些都可以被叠代,但他們並

python%r%s的區別

ould mat mark post inf info repr pan formatter %r用rper()方法處理對象 %s用str()方法處理對象 有些情況下,兩者處理的結果是一樣的,比如說處理int型對象。 例一: print "I am %d years o

Python copydeepcopy的區別

deepcopy 改變 般的 blog 等於 div copy clas 但是 import copy 假設在python中對list的復制 copy稱為淺復制 deepcopy稱為深復制 淺復制和深復制在一般的list中作用是相同的,都是進行一個復制 但是在list嵌套l

python ifelif的區別

pre else bsp 判斷 nbsp 優秀 自動 滿足 lse 如果程序中判斷事件很多,全部用if的話,會遍歷整個程序,用elif 程序運行時,只要if或後續某一個elif之一滿足邏輯值為True,則程序執行完對應輸出語句後自動結束該輪if-elif(即不會再去冗余地執

python的 == is 的區別

-s 對比 不能 -- 其他 ont clas 通過 數字 == 比較的是兩邊的值 is 比較的是兩邊的內存地址 通過 id()獲取內存地址 小數據池:我們使用過的值存儲在小數據池中,供其他數據使用.   小數據池僅限於 數字 和 字符串:     數字的小數池範圍 -

pythonsysos的區別

move ali 去掉 操作系統 格式 自動 form 出現 class <os和sys的官方解釋> ?os os: This module provides a portable way of using operating system depe

Python*args**kwargs的區別

注:《python核心程式設計第2版》的11.6可變長度的引數—章節中有詳細介紹。 python中我們經常見到,有些函式的引數中有*args和kwargs,那這兩個引數是什麼意思呢? 沒錯,*args和kwargs就是python中的可變引數。 可能很多人用了幾年的 Python 都沒真

Pythonsendsendall的區別

官方文件對socket模式下的socket.send() 和 socket.sendall()解釋如下: sock.sendall(string[, flags])         Send data to the socket. The socket mu

pythondefaultdictdict的區別與使用

預設值可以很方便 眾所周知,在Python中如果訪問字典中不存在的鍵,會引發KeyError異常(JavaScript中如果物件中不存在某個屬性,則返回undefined)。但是有時候,字典中的每個鍵都存在預設值是非常方便的。例如下面的例子: strings =

Python函式方法的區別

在Python中函式和方法是有區別的。 區別一所處的位置:函式是直接寫檔案中而不是class中,方法是隻能寫在class中。 區別二定義的方式:  1.函式定義的方式 def關鍵字  然後接函式名 再是括號 括號裡面寫形參也可以省略不寫形參  def function

pythonpprintprint的區別

部分來自https://blog.csdn.net/kancy110/article/details/74521226,加了截圖說明 pprint(object, stream=None, indent

Pythonbreakcontinue的區別

大部分人總是會搞混break和continue,雖然他們都是結束迴圈,但是結束的方式並不一樣。 break用於結束整個迴圈。 continue用於結束當前迴圈。 **1.**break有時候我們寫程式碼時想讓它結束整個迴圈,除了條件達到False結束,我們可以設

python-2 字串函式之三 isdigit() 、 isnumeric() 、isdecimal 區別 Python isdigit() isnumeric() 的區別

Python中 isdigit() 和 isnumeric() 的區別   num = "1" #unicodenum.isdigit() # Truenum.isdecimal() # Truenum.isn