Python:函数中默认参数的错误赋值

时间:2014-01-20 09:33:20

标签: python

我有以下Python函数,它定义了一个类的方法:

def SomeMethods(self,j=0)

根据Python文档,如果在调用函数时分配了任何参数 j ,则它的默认值应为0.但是,变量j假定布尔值为“True”(已选中)在调试会话中并实际引发错误,因为值“True”转到列表的索引)。 这个问题可能是什么原因造成的?

当切换PyQt GUI上的按钮时执行调用,并且按钮和函数之间的连接在此处进行:

QtCore.QObject.connect(checkBox,QtCore.SIGNAL("toggled(bool)"),self.SomeMethods)

2 个答案:

答案 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