[英]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.