2016-10-29 9 views
0

同じ名前を、同じPython環境で同時に実行されるツール内のクラスに使用することは悪いことですか?Pythonクラスの複製

以下の画像に示すように、私は2つのpythonウィジェットを作成しました。各ウィジェットには、独自のカスタムSortModelを使用するQTreeViewsが含まれています。

enter image description here

それは2つのファイル間SortModelメインウィンドウクラス同じの両方に名前を付けるために悪い習慣だ場合、私は不思議でしたか?

後で両方のファイルをタブと同じツールに読み込むためです。私はプログラムで奇妙なバグを取得し始めていると私はそれが原因であるかもしれないと感じている。

enter image description here

+2

をこれは、[XYの質問](http://meta.stackexchange.com/aように見えます/ 66378/141542)。 * "私はプログラムに奇妙なバグが出始めているので、これが原因かもしれないと感じています。" * - バグや全体的な環境について説明する必要があるかもしれません。次に、同じ名前のクラスが原因である可能性があると言えるでしょう。 – poke

+1

正しく名前を付けると問題になりません。 – Evert

答えて

1

あなたは同じモジュールの名前空間に輸入両方のクラスに持って考えると、異なるクラスに同じ名前を使用することは悪い習慣よりも悪いアイデアの詳細です。

現在のモジュールは、両方のモジュールのどちらかが必要なすべての場合に、1つのクラスのみを使用します。奇妙な結果。

しかし、あなたはimport as機能を使用して、インポートレベルで他のものを区別することができます。

from camera_publish import SortModel as CameraSortModel 
from cache_publish import SortModel as CacheSortModel 
+0

これは実際のウィジェット自体も – JokerMartini

+0

と仮定しています。はい、そうです。あなたのモジュールで、それぞれのクラスの適切な名前を変更することを忘れないでください。 –

+0

@M okありがとう。私はそれをすることを確認します。私はこれに助けていただきありがとうございます。 ここにいる間、私の元のウィジェットのそれぞれは、各ウィジェットを個別に実行するときに通常実行されるcloseEventを持っています。タブウィジェットの中に置かれ、そのウィジェットが閉じられると、同じ信号を放射する方法はありますか? – JokerMartini

関連する問題