2016-10-29 6 views
0

Неправильно ли использовать те же имена для классов внутри инструментов, которые одновременно исполняются в одной среде python?Дублирование класса Python

Я создал два виджета python, как показано на изображении ниже. Каждый из виджетов содержит QTreeViews, которые используют собственную собственную SortModel.

enter image description here

мне было интересно, если это плохая практика, чтобы назвать оба SortModel и MainWindow классов же между этими двумя файлами?

Потому что я потом загружаю оба файла в тот же инструмент, что и вкладки. Я начинаю получать некоторые странные ошибки в программе, и у меня такое чувство, что это может быть причиной этого.

enter image description here

+2

Это, как представляется, будет [XY] вопрос (http://meta.stackexchange.com/a/66378/141542). * «Я начинаю получать некоторые странные ошибки в программе, и у меня такое чувство, что это может вызвать это». * - Возможно, вам стоит начать с описания этих ошибок и вашей общей среды. Тогда вы можете упомянуть, что вы считаете, что это может быть вызвано теми классами с тем же именем. – poke

+1

Это не проблема, если вы правильно их разместите. – Evert

ответ

1

Учитывая вы должны импорта обоих классов в том же модуле пространства имен, используя то же имя для различных классов больше, чем плохая идея плохая практика.

Текущий модуль будет использовать только один из классов для всех случаев, когда вам нужен один из них; странные результаты.

Однако, вы можете отличить их друг от друга на уровне импорта с помощью import as функции:

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

делает это также применительно к самим виджетам im, принимающим – JokerMartini

+0

Да, это так. Не забудьте сделать соответствующие переименования в вашем модуле для каждого из классов –

+0

@M ok спасибо. Я обязательно сделаю это. Я ценю помощь в этом. В то время как вы здесь, каждый из моих оригинальных виджетов, имеют closeEvents, которые обычно выполняются при запуске каждого виджета индивидуально. Есть ли способ испускать тот же сигнал, когда они помещены внутри виджета вкладки, и этот виджет вкладки закрывается? – JokerMartini

Смежные вопросы