Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将基元数据类型名称作为函数参数传递_Python_Python 3.x_Pyqt5 - Fatal编程技术网

在python中将基元数据类型名称作为函数参数传递

在python中将基元数据类型名称作为函数参数传递,python,python-3.x,pyqt5,Python,Python 3.x,Pyqt5,我是一名java程序员,试图学习Python,因此我试图将这两种语言联系起来 最近我开始使用PyQt5库。我正在跟随一个关于我们使用的udemy的教程 custom_signal = pyqtSignal(str) 然后在我们的插槽中,数据以字符串的形式输入。如果我们使用 custom_signal = pyqtSignal(int) 然后数据将作为整数传递到插槽 谁能解释一下内部发生了什么。为什么我们要将数据类型名称传递给类的构造函数(pyqtSignal(int))。它与java中的泛型

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

最近我开始使用PyQt5库。我正在跟随一个关于我们使用的udemy的教程

custom_signal = pyqtSignal(str)
然后在我们的插槽中,数据以字符串的形式输入。如果我们使用

custom_signal = pyqtSignal(int)
然后数据将作为整数传递到插槽

谁能解释一下内部发生了什么。为什么我们要将数据类型名称传递给类的构造函数(pyqtSignal(int))。它与java中的泛型类型相关吗

List<Integer> list = new ArrayList<Integer>();
List List=new ArrayList();
由于上面的变量只接受整数,pyqtSignal(int)也类似于

有人能解释一下吗。这可能很傻,但我只是想了解里面发生了什么。我试着看pyqtSignal类的源代码,但在网上的任何地方都找不到相同的源代码

还有谁能告诉我在内部发生的对象创建过程,比如调用什么特殊方法(_new_uu,_init_uuu等等),以及调用的顺序和目的


提前感谢

事实上,
pyqtSignal
是一家工厂,它使用您传递的参数生产一个新的
信号

工厂法的定义如下:

PyQt5.QtCore.pyqtSignal(types[, name[, revision=0[, arguments=[]]]])
这意味着,如果要定义一个名为
rangeChanged
的信号,该信号采用两个整数参数,则需要执行以下操作:

range_changed = pyqtSignal(int, int, name='rangeChanged')
你可以阅读更多关于这家工厂的信息


关于dunder方法(\uuuu名称\uuu)或其他称为魔术方法的方法,可以找到一个很好的解释。

“types[,name[,revision=0[,arguments=[]]”这个参数在python中是什么意思?这是一个列表吗?这只是功能规范;这是一个相当广泛的行业标准,用这种方式指定参数。-方括号内的所有内容都可以省略;这意味着它们是可选的。如果你想了解更多,这里有更多的解释:关于dunder方法;这是一个相当广泛的讨论;这可能持续几天甚至几周例如:继承一个元类时,首先触发元类init,然后触发调用函数;清单还在继续。我很高兴它能帮到你,伙计,如果你需要什么的话;让我知道。:)如果答案正确,别忘了把它标为答案。