我有一个像下面这样的元组:
self.tagnames = (('string', self.do_anything()),)
如果字符串与另一个字符串匹配,它应该执行特定的函数。
但是,当我初始化self.tagnames
时,似乎已经执行了该函数。
如何在不启动启动功能的情况下解决我的问题?
答案 0 :(得分:4)
self.tagnames = (('string', self.do_anything),)
()
是函数调用。如果你想将调用推迟到以后,只需要包含没有像这样的parens的函数引用。
答案 1 :(得分:2)
self.tagnames = (('string', self.do_anything),)
使用带参数列表的parens调用函数:
len
是一个函数,len(s)
正在参数s
上调用该函数。只需使用该功能的名称即可获得该功能。不要使用带括号的参数列表,并且不再调用该函数。
答案 2 :(得分:1)
您应该删除括号:
self.tagnames = (('string', self.do_anything),)
显然self.do_anything()
立即调用该方法,而self.do_anything
返回Python中称为“绑定方法”的内容,即它是一个可调用的对象,您可以只传递参数(如果有的话)和这将导致在特定实例上调用该方法。