gpt4 book ai didi

python - python中函数的len()

转载 作者:行者123 更新时间:2023-12-01 01:45:44 24 4
gpt4 key购买 nike

我有一个通常接受列表的函数,但有时也需要接受函数。有几种方法可以解决这个问题,但是如果能够这样做 len(foo) 会非常有用。对于给定的函数 foo .

最后,我没有传入函数,而是传入了具有 __len__ 的可调用类。功能定义。但这让我开始思考,因为在 python 中,一切都是对象,函数可以具有属性等,只是出于好奇……

问题

有没有办法给一个函数一个len?一个快速的谷歌没有提出任何东西。

我的尝试

def foo():
return True

def my_len(self):
return 5

foo.__len__ = my_len

len(foo)

最佳答案

添加 __len__到一个对象不起作用(请参阅此 link 由 Aran-Fey 添加的原因)。函数只是一个定义 __call__ 的对象方法。您可以像这样定义一个类:

class Foo:
def __call__(self):
return True
def __len__(self):
return 5

使用它:
>>> foo=Foo()
>>> foo()
True
>>> len(foo)
5

可以创建一个具有 length 的函数,但您应该考虑用例。 Python 为您提供了很多功能,但并非所有可能的事情实际上都是一个好主意。

关于python - python中函数的len(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49580329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com