近期写了一个窗口函数,打算点击一个button,然后弹出窗口,前面跟别人做了几个项目都好用,这个自己做,结果一运行,不用点击直接就出来,分析了好几天,终于在看其他视频中找到答案;
就是调用函数加括号和不加括号的不同;
1、问题说明
问题代码
class get_filelist(Ui_Form,QDialog):
def __init__(self):
#super().__init__()就是初始化Ui_PasswordGeneate和QDial这两个类,在MypasswordGenerate的位置,如果不初始化
#就没法引用
super().__init__()
self.setupUi(self)
self.show()
###############################################################################
#分析了这么长时间终于知道为什么运行直接弹出clicked的窗口,就是因为,后面的函数直接加了()
self.pushButton_getfile.clicked.connect(self.get_file_path())
错误点就在self.pushButton_getfile.clicked.connect(self.get_file_path()#不要加括号#)
2、调用函数加括号和不加括号的不同
在Python中,函数名后面的括号是用来传递参数的。如果你在函数名后面加上括号但没有提供任何参数,这实际上是在调用该函数,而不是定义它。
这里有一些例子来解释这个概念:
-
定义一个函数:
python复制代码
def my_function(): | |
print("Hello, World!") |
在这个例子中,my_function是一个函数名,后面的括号是用来定义函数参数的。在这个特定的例子中,函数没有参数。
-
调用一个函数:
python复制代码
my_function() |
在这个例子中,my_function()是在调用函数。由于这个函数不需要任何参数,所以在括号里什么都没有。
-
定义一个需要参数的函数:
python复制代码
def greet(name): | |
print(f"Hello, {name}!") |
在这个例子中,greet是一个函数名,括号里的name是函数的参数。
-
调用需要参数的函数:
python复制代码
greet("Alice") |
在这个例子中,greet("Alice")是在调用函数。括号里的"Alice"是传递给函数的参数。
3、总结
窗口函数自触发问题:Python中函数调用括号的重要性,
作者在开发过程中遇到点击按钮才执行的窗口函数在未加括号时直接弹出的问题,发现原因在于函数调用时括号的作用。Python中,不带括号表示调用整个函数对象,而带括号则表示执行函数并可能获取结果。
1万+

被折叠的 条评论
为什么被折叠?



