我有一个通常接受列表的函数,但有时也需要接受函数。有几种方法可以处理这个问题,但是能够对给定函数foo
执行len(foo)
,这将是非常有用的。在
最后,我没有传入函数,而是传入了定义了__len__
函数的可调用类。但它让我思考,因为在python中,一切都是对象,函数可以有属性等等。。。在
问题
有没有办法给函数加个len?一个快速的谷歌什么也没查出来。在
我的尝试
def foo():
return True
def my_len(self):
return 5
foo.__len__ = my_len
len(foo)
Tags:
向对象添加
__len__
无效(请参阅Aran Fey why添加的link)。函数只是定义__call__
方法的对象。您可以定义这样的类:使用它:
^{pr2}$可以创建一个具有
length
的函数,但是您应该考虑使用情况。Python为您提供了很多功能,但并不是所有可能的都是一个好主意。在相关问题 更多 >
编程相关推荐