近期写了一个窗口函数,打算点击一个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、总结