0

私のスクリプトの 1 つで、Python の文字列とスレッドの両方から join() メソッドを使用しました。import ... as次のようにモジュール名の名前を変更するために使用しようとしました:

import str.join as sjoin
import threading.Thread.join as tjoin

しかし、文字列結合を適切にインポートすることは常にできません。公式ドキュメントを確認すると、両方のjoin()クラスパスが正しいはずです。2 つの結合を同時に使用するにはどうすればよいですか?

編集

最初は str.join() をインポートしませんでした。しかし、型エラーが発生したので、join() の名前を変更する必要があると考えました。しかし後で、間違ったものを str.join() に渡したことに気付きました。これが、型エラーが発生した本当の理由です。私のせい!

4

2 に答える 2

2

str.join()文字列のインスタンスで使用されるメソッドです。たとえば、次のようになります。

>>> ", ".join([1, 2, 3])
1, 2, 3

何もインポートする必要はありません。ここでは例として文字列リテラルを使用していますが、もちろん任意の文字列を使用できます。これは、(メソッドに渡された)イテラブルからの文字列を結合する「接着剤」です。

これは、クラスthreading.Thread.join()のインスタンスを作成し、そのインスタンスでメソッドを使用する必要があることにも当てはまります。Threadjoin()

Python の動作方法により、これらのメソッドにクラスから直接アクセスして、最初の引数としてインスタンスを渡すことができますが、これは一般的に非常に悪い考えです。通常の呼び出しよりも読みにくく、手間がかかるためです。 .

于 2013-01-08T17:33:54.140 に答える
-1

str はモジュールではなく組み込みであるため、そこからインポートすることはできません。ただし、次のことができます。

sjoin = str.join
import threading.Thread.join as tjoin
于 2013-01-08T17:35:42.753 に答える