在導入包方面,兩者都使用import語句,但是Python沒有類路徑的概念,直接使用文件名來導入模塊。我們還討論了自定義模塊的創建和使用,以及在不同目錄下如何組織代碼結構。此外,我們介紹了一些常用的Python模塊,包括time、datetime、json、os和sys,它們在開發中非常實用。希望今... ...
好的,按照我們平常的慣例,我先來講一下今天這節課的內容,以及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"語句。
目錄結構如下:
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,它們在開發中非常實用。希望今天的課程對大家有所幫助!