阅读 class 方法定义 - 什么是 Callable?
Reading class method definition - what is Callable?
我对 python 比较陌生,在使用包时我开始阅读文档,但我很难理解其中的一些内容:
post_to_main_thread(self: open3d.cpu.pybind.visualization.gui.Application, arg0: open3d::visualization::gui::Window, arg1: Callable[[], None]) → None
这里我唯一不明白的是 arg1
和那个 callable,我在网上找不到关于它的解释。
有趣的问题!
所以post_to_main_thread()
是一个接受3个参数(inputs/variables)和returns None
.
的方法
因为它是一个方法(与 class 关联的函数,而不仅仅是一个独立的函数)第一个参数 self
指的是 class 的实例函数是.
的一部分
其他两个参数在函数括号内传递,正如独立函数所预期的那样。因此调用可能如下所示:
instance_name = open3d.visualization.gui.Application(...)
instance_name.post_to_main_thread(arg1, arg2)
arg1
应该是 open3d::visualization::gui::Window
类型。这是 class open3d.visualization.gui.Window()
.
的实例
arg2
应该是 Callable()
类型。这描述了一些内置函数,您可以找到有关 in the documentation 的详细信息。引用:
The subscription syntax must always be used with exactly two values: the argument list and the return type. The argument list must be a list of types or an ellipsis; the return type must be a single type.
所以在这种情况下,类型应该是 Callable[[], None]
,这意味着这应该是一个不接受输入和 returns None
的函数。继续我们之前的示例,您可以像这样将其作为参数传递:
def my_callable:
print('Hello, World!')
return
instance_name.post_to_main_thread(arg1, my_callable)
一切都清楚了吗?
我对 python 比较陌生,在使用包时我开始阅读文档,但我很难理解其中的一些内容:
post_to_main_thread(self: open3d.cpu.pybind.visualization.gui.Application, arg0: open3d::visualization::gui::Window, arg1: Callable[[], None]) → None
这里我唯一不明白的是 arg1
和那个 callable,我在网上找不到关于它的解释。
有趣的问题!
所以post_to_main_thread()
是一个接受3个参数(inputs/variables)和returns None
.
因为它是一个方法(与 class 关联的函数,而不仅仅是一个独立的函数)第一个参数 self
指的是 class 的实例函数是.
其他两个参数在函数括号内传递,正如独立函数所预期的那样。因此调用可能如下所示:
instance_name = open3d.visualization.gui.Application(...)
instance_name.post_to_main_thread(arg1, arg2)
arg1
应该是 open3d::visualization::gui::Window
类型。这是 class open3d.visualization.gui.Window()
.
arg2
应该是 Callable()
类型。这描述了一些内置函数,您可以找到有关 in the documentation 的详细信息。引用:
The subscription syntax must always be used with exactly two values: the argument list and the return type. The argument list must be a list of types or an ellipsis; the return type must be a single type.
所以在这种情况下,类型应该是 Callable[[], None]
,这意味着这应该是一个不接受输入和 returns None
的函数。继续我们之前的示例,您可以像这样将其作为参数传递:
def my_callable:
print('Hello, World!')
return
instance_name.post_to_main_thread(arg1, my_callable)
一切都清楚了吗?