繁体   English   中英

在 function 调用中将“self”作为参数传递?

[英]Passing 'self' as an argument in a function call?

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

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

我想过为此写一个 function :

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

每当我需要它时(在某些 class 中)我都会这样称呼它:

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

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

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

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

虽然save_file可能应该在 class 中,但它的方法定义如下所示:

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

self通常用来指代this object。 您目前采用的方法。 您没有为完整答案提供足够的上下文,但您应该阅读 python 类以及 class 方法的使用。 这是一个教程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM