我对OOP还是很陌生,所以这可能是一个非常愚蠢的问题。
我有很多类,它们都使用通用对话框来执行简单的“获取文件”,这在我的实用程序模块中。将wx传递给该函数是一种不好的做法,因此我不必在utils.py文件的顶部放置“ import wx”?
此刻,我通过单击按钮并传递默认路径来调用例程,但这意味着我必须在utils.py和test.py中都具有“ import wx”
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):
这使我可以从utils.py中删除“ import wx”
将您的函数解耦到不同的文件中比较干净。这样,您只处理返回值。假设以下两个文件位于同一文件夹中:
file_one.py
import random
def get_a_number():
return random.randint(0, 101)
file_two.py
from file_one import get_a_number
def multiply_random_number(random_number, multiple):
print(random_number * multiple)
multiply_random_number(get_a_number(), 4)
注意我如何不在file_two中再次随机导入。我只给我调用的函数file_one中的第一个位置参数,这是它的返回值。