??Java開發者的Python快速進修指南:自定義模組及常用模組

努力的小雨發表於2023-11-26

好的,按照我們平常的慣例,我先來講一下今天這節課的內容,以及Java和Python在某些方面的相似之處。Python使用import語句來匯入包,而Java也是如此。然而,兩者之間的區別在於Python沒有類路徑的概念,它直接使用.py檔案的檔名作為匯入路徑,並將其餘的工作交給Python直譯器來掃描和處理。另外,你可能經常看到有人使用from..import語句,這種語法是為了從.py檔案中只匯入部分函式或變數而設計的。也可能是導致不同包目錄的情況

自定義模組

我來舉一個在Java開發中常用的開發方式作為例子。在我們進行專案開發時,通常會在專案的結構中建立一個util包,用於存放一些工具類。同樣,Python也可以採用類似的方式來組織程式碼結構,讓大家更容易理解。

在同目錄下

如果你想在在同目錄下建立一個nameUtil.py檔案,並不想另外建立一個util包的話,也可以,我們可以演示一下。以下是nameUtil.py的簡單內容:

name = "xiaoyu"

def getName(name):
    print(f"我的名字是{name}")

在執行的Python檔案(main.py)中,可以直接使用import語句來引入其他模組。例如:

import nameUtil

name = "xiaoyu" 
nameUtil.getName(nameUtil.name) # 可將nameUtil.name替換成name

可以使用from..import語句最佳化一下上面的內容:

from nameUtil import getName

getName("xiaoyu")

這種情況是最簡單的。當你想要匯入某個包的時候,你可能會想,為什麼我可以直接匯入,而不需要在同目錄下引入各種第三方包呢?實際上,這和Java是一樣的。Python也有固定的包掃描路徑。比如,當我們匯入第三方包時,Python會搜尋第三方庫的安裝路徑。這些路徑通常是透過包管理工具(如pip)安裝的。

不在同一目錄下

如果我們將一些Python工具類單獨放在一個名為"util"的目錄中,這樣可以更好地組織程式碼。這種做法符合規範,並且讓我們的程式碼更易讀、易維護。下面我將演示一下如何使用這種目錄結構,唯一的區別是,你需要使用"from"語句來匯入工具類,而不能簡單地使用"import"語句。

目錄結構如下:

image

main.py內容如下:

from utils import nameUtil

name = "xiaoyu"
nameUtil.getName(nameUtil.name) # 可將nameUtil.name替換成name

這就很像我們正常開發的模式了,因為在開發過程中,我們通常需要將模組按照不同的功能進行分級,並建立相應的包目錄結構。這樣,我們就可以像上面那樣編寫程式碼。如果有多層包目錄,我們可以繼續按照相同的方式匯入模組,例如:from java.utils import nameUtil。感覺就像是回到了熟悉的開發環境,我們可以開始進行正常的開發工作了。

常用模組

我們將舉一些在開發Java工作中常用的工具類,這些工具類同樣適用於Python程式語言。

time

time模組:提供了與時間相關的函式和類,可以用來獲取當前時間、格式化時間、計時等操作。在加密介面中,經常需要使用時間戳場景來確保資料的安全性。

獲取當前時間戳:current_time = time.time()

將時間戳轉換為可讀時間:readable_time = time.ctime(current_time)

格式化時間:formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(current_time))

程式休眠一定時間:time.sleep(2) # 程式暫停2秒

datetime

datetime模組是Python中提供的一個功能強大的模組,它包含了許多與日期和時間相關的函式和類,可以方便地進行日期和時間的計算、格式化等操作。在很多場景下,比如列表查詢等,我們經常會用到日期模組的功能。

獲取當前日期時間:current_datetime = datetime.datetime.now()

格式化日期時間:formatted_datetime = current_datetime.strftime("%Y-%m-%d %H:%M:%S")

計算兩個日期之間的差值:time_difference = datetime.datetime(2022, 1, 1) - datetime.datetime(2021, 1, 1)

json

json模組在Python中提供了處理JSON資料的函式和類,它可以被廣泛地應用於解析和生成JSON資料。在工作中,我們經常會遇到需要處理JSON資料的情況,所以我想詳細解釋一下它的用法。然而,需要注意的是,在某些特定的情況下,比如與微信開放者平臺進行介面對接時,資料的傳輸形式可能會是XML格式。在我之前的工作經歷中,就遇到過這樣的情況,在與微信開放者平臺對接時我也踩過一些坑,需要特別注意。

解析JSON字串:

json_data = '{"name": "xiaoyu", "age": 30}'
parsed_data = json.loads(json_data)

# 獲取key的value值
name = parsed_data["name"]
age = parsed_data["age"]
print(name)  # 輸出:xiaoyu
print(age)  # 輸出:30

# 新增新的鍵值對
parsed_data["city"] = "China"

print(parsed_data)

生成JSON字串:data = {"name": "John", "age": 30} json_data = json.dumps(data)這裡的data是物件,變數json_data就是一個包含了"name"和"age"鍵值對的JSON格式字串。

os

os模組:提供了與作業系統相關的函式和類,可以用來進行檔案和目錄操作、程式管理等操作。如果你經常需要進行檔案操作,不管是在學習還是工作中,瞭解和掌握os模組都是非常重要的。

獲取當前工作目錄:current_directory = os.getcwd()

建立目錄:os.mkdir("new_directory")

判斷檔案或目錄是否存在:exists = os.path.exists("file.txt")

sys

sys模組:提供了與Python直譯器和系統相關的函式和變數,可以用來獲取命令列引數、退出程式等操作。這在開發中非常有用,尤其是當我們需要與系統進行互動時。

獲取命令列引數:arguments = sys.argv

退出程式:sys.exit()

總結

在匯入包方面,兩者都使用import語句,但是Python沒有類路徑的概念,直接使用檔名來匯入模組。我們還討論了自定義模組的建立和使用,以及在不同目錄下如何組織程式碼結構。此外,我們介紹了一些常用的Python模組,包括time、datetime、json、os和sys,它們在開發中非常實用。希望今天的課程對大家有所幫助!

相關文章