【发布时间】:2011-11-24 17:12:41
【问题描述】:
我有一个像下面这样的元组:
self.tagnames = (('string', self.do_anything()),)
如果一个字符串与另一个匹配,它应该执行一个特定的函数。
但是,当我初始化self.tagnames时,它似乎已经执行了该函数。
如何在启动时不执行该功能来解决我的问题?
【问题讨论】:
标签: python string function tuples
我有一个像下面这样的元组:
self.tagnames = (('string', self.do_anything()),)
如果一个字符串与另一个匹配,它应该执行一个特定的函数。
但是,当我初始化self.tagnames时,它似乎已经执行了该函数。
如何在启动时不执行该功能来解决我的问题?
【问题讨论】:
标签: python string function tuples
self.tagnames = (('string', self.do_anything),)
() 是一个函数调用。如果您想将调用推迟到以后,并且只包含函数引用而没有像这样的括号。
【讨论】:
self 参数将包含在self.do_anything 返回的内容中)。
self.tagnames = (('string', self.do_anything),)
您通过使用带有参数列表的括号来调用函数:
len 是一个函数,len(s) 在参数s 上调用该函数。只需使用函数的名称即可获得该函数。去掉带括号的参数列表,您将不再调用该函数。
【讨论】:
你应该去掉括号:
self.tagnames = (('string', self.do_anything),)
显然self.do_anything() 立即调用该方法,而不是self.do_anything 返回在 Python 中称为“绑定方法”的内容,即它是一个可调用对象,您可以只向其传递参数(如果有),这将导致在特定实例上调用方法。
【讨论】: