Python 当我调用带有参数的函数时,lambda的用途是什么?
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将引用可调用函数作为参数。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=
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