gpt4 book ai didi

python - 如何在 __init__ 上创建 __len__ 函数?

转载 作者:太空宇宙 更新时间:2023-11-04 09:12:52 25 4
gpt4 key购买 nike

如何删除此对象中的 __size 属性?

class Object():
def __init__(self, size):
self.__size = size

def __len__(self):
return self.__size

init 函数如何创建 len 函数? lambda 函数?

PS:在我的真实情况下,我需要在此 len 函数中进行一些计算,但实例化后结果始终相同(例如元组)。将此结果保存在没有任何隐藏属性的函数中可能会很棒。

最佳答案

我不推荐这样做,但你可以使用一个简单的 lambda 函数

class Object():
def __init__(self, size):
self.__len__ = lambda: size


>>> len(Object(3))
3

我不推荐这样做的原因包含在 Python 之禅中:显式优于隐式。简单胜于复杂。

如果你使用的是实例变量,那么它是显式的,你有更好的错误堆栈跟踪,你可以在你的 __len__ 函数中使用 doctests 并且代码在阅读和更新时更容易理解.

关于python - 如何在 __init__ 上创建 __len__ 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13012159/

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