[英]Why two methods with same functionality available in threading module in Python?
對於threading.Thread
,有兩個似乎具有相同功能的方法:
is_alive
和isAlive
對於threading.Event
,有以下方法:
is_set
和isSet
類似的threading
模塊,同樣可以使用這些方法
currentThread
和current_thread
active_count
和activeCount
因此,問題是,盡管看起來這兩種方法都具有相同的功能,但為什么有兩種方法可用?
另外, 哪一個更好 ?
這是風格問題。 在強調使用下划線樣式作為Python樣式之前,已經有使用不同樣式的庫了。 因此,對函數進行了重命名,但是由於兼容性問題,還必須保留舊名稱版本。
無論如何, PEP 8建議使用下划線樣式,因此我建議堅持使用下划線樣式。
通常,Python使用lowercase
或lowercase_with_underscores
作為方法和函數名稱 。 threading
模塊在首次添加到Python時,錯誤地為許多名稱使用了mixedCase
。 他們后來添加了lowercase_with_underscores
名稱作為別名,以與其他Python保持樣式一致性。
通常,除非您的代碼需要在Python 2.5或更早版本上運行(在2.6中添加了固定名稱),否則請使用lowercase_with_underscores
名稱。 也就是說, 文檔說明 :
注意:從Python 2.6開始,此模塊提供了符合PEP 8的別名和屬性,以替換受Java線程API啟發的camelCase名稱。 此更新的API與多處理模塊的API兼容。 但是,尚未為棄用camelCase名稱設置任何時間表,Python 2.x和3.x仍然完全支持它們。
我不確定100%,但我認為它只是來自不同版本的Python的別名,它們具有相同的功能
原因是保持與舊版Python的兼容性
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.