gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 01:37:46 25 4
gpt4 key购买 nike

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

最近我开始使用 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 实际上是一个工厂,它使用您传递的参数生成新的信号

工厂方法的定义如下:

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

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

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

您可以阅读有关该工厂的更多信息 here .

关于 dunder 方法(__name__)或其他称为魔术方法的内容 - 可以找到一个很好的解释 here .

关于python - 在 python 中将原始数据类型名称作为函数参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52220540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com