首页 > 解决方案 > 在函数调用中将“self”作为参数传递?

问题描述

在我的 gui 应用程序(PyQt 5)中,我有几个代码片段重复出现在不同的模块中。这是一个例子:

save_file = QFileDialog.getSaveFileName(
                                    self,
                                    "Save",
                                    directory="path/to/filename"
                                )
save_path = save_file[0]

我想过为此编写一个函数:

def save_file(obj, title, preset):
    save_file = QFileDialog.getSaveFileName(obj, title, preset)
    save_path = save_file[0]
    return save_path

每当我需要它(在某个类中)时,我都会这样称呼它:

save_file(self, "Save testfile", os.path.join(file_path, file_name))

在这种情况下,我必须将self其作为参数传递给我的函数。这个可以吗?我知道我可以将一个类的实例作为参数传递。但是self在方法中调用函数时直接传递是个好主意吗?我在互联网上找不到太多关于它的信息。

标签: pythonpython-3.xclassself

解决方案


这很好,尽管惯例是使用以下格式:

self.save_file("Save testfile", "path/to/filename")

虽然save_file应该可能在一个类中,并且它的方法定义看起来像:

def save_file(self, title, preset):
    ...

推荐阅读