繁体   English   中英

在Python中将原始数据类型名称作为函数参数传递

[英]passing primitive datatype name as function argument in python

我是试图学习Python的Java程序员,因此,我试图将这两种语言联系起来。

最近,我开始使用PyQt5库。 我正在关注关于udemy的教程

custom_signal = pyqtSignal(str)

然后在我们的插槽中,数据作为字符串输入。 如果我们使用

custom_signal = pyqtSignal(int)

然后数据将作为整数传递到插槽。

谁能解释我内部发生的事情。 为什么我们将数据类型名称传递给类的构造函数(pyqtSignal(int))。 它与Java中的泛型类型有关吗?

List<Integer> list = new ArrayList<Integer>();

由于上述变量仅接受整数,因此pyqtSignal(int)也与此类似吗?

有人可以对此进行说明。 这可能很愚蠢,但我只是想了解内部发生的事情。 我试图观看pyqtSignal类的源代码,但无法在任何地方在线找到相同的源代码。

也有人可以告诉我在内部发生的对象创建过程,例如调用什么特殊方法(_new _,_ init_等)以及为什么目的按什么顺序进行。

提前致谢

pyqtSignal实际上是一家工厂,它会使用您传递的参数来产生新signal

工厂方法的定义如下:

PyQt5.QtCore.pyqtSignal(types[, name[, revision=0[, arguments=[]]]])

这意味着如果要定义一个名为rangeChanged的信号,该信号需要两个整数参数,则可以执行以下操作:

range_changed = pyqtSignal(int, int, name='rangeChanged')

您可以在此处了解有关该工厂的更多信息。

关于dunder方法( __名称__ )或其他称为魔术方法-在这里可以找到很好的解释。

暂无
暂无

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

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