Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.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 当我调用带有参数的函数时,lambda的用途是什么?_Python_Function_Lambda_Arguments_Pyqt5 - Fatal编程技术网

Python 当我调用带有参数的函数时,lambda的用途是什么?

Python 当我调用带有参数的函数时,lambda的用途是什么?,python,function,lambda,arguments,pyqt5,Python,Function,Lambda,Arguments,Pyqt5,self.button1.clicked.connect将不接受任何参数的函数作为参数,因为这是调用函数的方式。如果你需要它来调用一个带参数的函数,并且你有要传递的参数,你可以使用lambda来调用该函数。请在问题文本中解释你的问题,而不仅仅是标题。@Barmar注释中的关键字是explain。它会延迟函数的调用。self.click1a由您单击按钮的人调用,而不是在调用connect时调用。请注意,a是一个自由变量,但与init_ui中的局部变量a或实例属性a无关。你可能想要lambda a=

self.button1.clicked.connect将不接受任何参数的函数作为参数,因为这是调用函数的方式。如果你需要它来调用一个带参数的函数,并且你有要传递的参数,你可以使用lambda来调用该函数。

请在问题文本中解释你的问题,而不仅仅是标题。@Barmar注释中的关键字是explain。它会延迟函数的调用。self.click1a由您单击按钮的人调用,而不是在调用connect时调用。请注意,a是一个自由变量,但与init_ui中的局部变量a或实例属性a无关。你可能想要lambda a=self.a:self.click1a。但是self.a可能可以替换为局部变量。a=1,lambda a=a:self.click1此处lambda的用途与其他任何地方相同,用于创建匿名函数。您不必使用lambda,您可以只使用函数定义语句,但有些人发现lambda更方便,不完全是这样。具有选中的参数。它通常仅用于可检查按钮:QCheckBox、QRadioButton、QPushButton和QToolButton,但对于后两个按钮,除非可检查属性为True,否则它始终为False。此外,更准确地说,connect将引用可调用函数作为参数。
import  sys
import sqlite3
from PyQt5 import QtWidgets


class Pencere(QtWidgets.QWidget):

    def __init__(self):

        super().__init__()

        self.init_ui()

    def init_ui(self):

        self.a = 1
        self.button = QtWidgets.QPushButton()
        self.button1 = QtWidgets.QPushButton()
        self.button.clicked.connect(self.click)
        self.button1.clicked.connect(lambda: self.click1(a))

    def click(self):
        pass

    def click1(self,number):
        pass