我有以下Python函数,它定义了一个类的方法:
def SomeMethods(self,j=0)
根据Python文档,如果在调用函数时分配了任何参数 j ,则它的默认值应为0.但是,变量j假定布尔值为“True”(已选中)在调试会话中并实际引发错误,因为值“True”转到列表的索引)。 这个问题可能是什么原因造成的?
当切换PyQt GUI上的按钮时执行调用,并且按钮和函数之间的连接在此处进行:
QtCore.QObject.connect(checkBox,QtCore.SIGNAL("toggled(bool)"),self.SomeMethods)
答案 0 :(得分:2)
请分享您的代码。见下文 - 它工作正常:
def SomeMethods(self, j=0):
print j
SomeMethods('a')
0
SomeMethods('a', True)
True
答案 1 :(得分:1)
默认参数很有用 - 在其他情况下 - 因为它允许您省略代码中使用的大多数常用值。如果您提供实际值 - 将使用该值而不是默认值。显然,使用参数 True
调用该方法修改强>:
让我澄清一下 - 您可以将您的方法称为 SomeMethods() - 然后 j 将在方法内为0;如果您将其称为 SomeMethods(True)或 SomeMethods(j = True),则 j 值将为 True