2016-10-31 4 views
0
threading.Threadため

、同じ機能を持っていると思われる2つの方法がある:同じ機能を持つ2つのメソッドがPythonのスレッドモジュールで利用できるのはなぜですか?

  • is_alivethreading.Eventについて

isAliveは、方法の下にある。

  • is_setisSet

同様に、それはそうですけれどもthreadingモジュールは、再びこれらの方法は

  • currentThreadcurrent_thread
  • active_countactiveCount

ご利用いただけますので、質問は、あり、両方の方法は、同じ機能を持っている、理由2つの方法がありますか?

いずれかが好ましい

+0

それだけ後方の命名だとの互換性を維持することです

を私は私が思うのPythonの異なるバージョンからは100%を確認してくださいしかし、そのわずか別名ではないですし、彼らは同じ機能を持っています互換性。今から小文字+アンダースコアのバージョンを使用してください:http://stackoverflow.com/questions/919897/how-to-find-a-thread-id-in-python –

答えて

2

Pythonは、通常、lowercase or lowercase_with_underscores for method and function namesを使用します。 threadingモジュールは、最初にPythonに追加されたときに多くの名前に正しくmixedCaseを使用していました。彼らは後でPythonの残りの部分とスタイルの一貫性のためのエイリアスとしてlowercase_with_underscoresという名前を追加しました。

一般に、Python 2.5以前でコードを実行する必要がある場合(固定名が2.6で追加されている場合)は、lowercase_with_underscoresの名前を使用します。それはthe docs note、言った:

注:Pythonの2.6以降では、このモジュールは、JavaのスレッドAPIに触発されたキャメルケース名を置き換えるためにPEP 8対応の別名とプロパティを提供します。この更新されたAPIは、マルチプロセッシングモジュールのAPIと互換性があります。ただし、camelCase名の非推奨のスケジュールは設定されておらず、Python 2.xと3.xの両方で完全にサポートされています。

+0

それを保つためにありがとうショートスウィートとクリスプ!私のすべての質問に答えた! –

2

スタイルの問題です。アンダースコアスタイルが正式にPythonのスタイルとして受け入れられる前に、すでに異なるスタイルを使用しているライブラリがありました。関数の名前が変更されましたが、互換性の問題のために古い名前のバージョンも保持する必要がありました。

とにかくPEP 8はアンダースコアスタイルを使用するように提案しています。

1

理由は、Python

のoldersバージョン
関連する問題