Я совершенно новичок в ООП, так что это может быть очень глупый вопрос.
У меня есть много классов, все из которых используют общий диалог, который выполняет простой "get file", который находится в моем модуле утилит. Является ли плохой практикой передача wx этой функции, поэтому у меня не должно быть «import wx» вверху моего файла utils.py?
В данный момент я вызываю подпрограмму, нажимаяКнопка и передача пути по умолчанию, но это означает, что мне нужно иметь «import wx» в моем utils.py, а также мои test.py
test.py
import utils, wx
#... Lots of wx stuff happens here
f = utils.get_file(self, def_path)
#... Lots more wx stuff happens here
utils. py
import wx
def get_file(self,defaultPath):
newFile = ''
with wx.FileDialog(self, "Select sound file",
style=wx.FD_OPEN, defaultDir=defaultPath) as fileDialog:
if fileDialog.ShowModal() == wx.ID_CANCEL:
return newFile # the user changed their mind
# Proceed loading the file chosen by the user
newDir = fileDialog.GetDirectory()
if newDir == defaultPath:
newFile = fileDialog.GetFilename()
else:
newFile = fileDialog.GetPath()
return newFile
Итак, это плохая практика - изменять вызов на f = utils.get_file(self, wx, def_path)
и функцию на def get_file(self, wx, defaultPath):
, что позволяет мне удалить «import wx» из utils.py