当前位置: 首页 > 知识库问答 >
问题:

神奇的方法__len__()

岳曦
2023-03-14

如何使用类的对象调用__len__()函数?

class foo(object):
      def __init__(self,data)
         self.data = data
      def __len__(self):
         return len(self.data)
x = foo([1,2,3,4])

共有2个答案

微生学
2023-03-14

神奇方法背后的想法是能够将其称为x.__len__()len(x)。即使在初始化过程中调用了这些方法,它们也不会返回输出,必须显式调用或存储在类变量中。

您可以简单地将函数显式调用为-

class foo(object):
    def __init__(self,data):
        self.data = data
    def __len__(self):
        return len(self.data)

x = foo([1,2,3,4])

x.__len__()
#len(x)    #which is equivalent
4

或者如果您希望在初始化期间触发它,只需在__init__()中添加它。请记住,init不会返回任何内容,因此您可以将输出与打印一起推送到stdio中。

class foo(object):
    def __init__(self,data):
        self.data = data
        self.__len__()
    def __len__(self):
        print(len(self.data))

x = foo([1,2,3,4])
4

如果您想保存它,那么您可以定义一个self.length变量,该变量可以存储它,并且可以由x.length检索

class foo(object):
    def __init__(self,data):
        self.data = data
        self.length = self.__len__()
    def __len__(self):
        return len(self.data)

x = foo([1,2,3,4])
x.length
4
慕乐语
2023-03-14

你可以这样做:

>>>x = foo([1,2,3,4])
>>>len(x)
4
 类似资料:
  • 我知道python中有一些神奇的方法可以被类覆盖,以控制某些内置函数处理这些类成员的方式。例如,

  • 紫色透露着诡异的气息,所以能制造奇幻的效果。各种彩度与亮度的紫色,配上橘色和绿色,便是刺激与新奇的最佳代言人。如果紫色配上黄绿色或黄橘色,色调不合、怪异,而且俗不可耐,但如果配上它真正的补色——黄色,便能展现怪诞、诡异的感觉,令人不禁要驻足,欣赏一番。 以现代流行语来说,紫色象征“青涩”或“未成年”,常被用以代表两代关系之间的沟通桥梁。 补色色彩组合 二次色色彩组合 单色色彩组合 40 87 36

  • 人工神经网络 人工神经网络是借鉴了生物神经网络的工作原理形成的一种数学模型,有关人工神经网络的原理、公式推导以及训练过程请见我的文章《机器学习教程 十二-神经网络模型的原理》 神奇用法之一 我们这样来设计我们的神经网络:由n个输入特征得出与输入特征几乎相同的n个结果,这样训练出的隐藏层可以得到意想不到的信息。 比如,在信息检索领域,我们需要通过模型训练来得出合理的排序模型,那么输入的特征可能有:文

  • 神奇的错误,远程ecs可以连接,本地centos7连接不上, 检查了ssh以及端口是否开放,ping和联网也正常,密码也重置了,就是连接不上,这xshell还能要吗? 发现是好像是防火墙问题?但我明明开放了端口,但主机就连接端口显示失败?

  • 英威腾: 前天晚上24点投的简历 第二天早上十点电话来了加微信 下午2电话人事面 4点专业面 6点oc 待遇也还行,对我这学历很友好了 主要是工作内容是我喜欢的,我也打算签了 辛辛苦苦秋招忙了近俩月,不如一晚上来的痛快 哈哈哈哈 专业面: 1、唠家常 2、英语自我介绍及简单英语对话 3、介绍项目并围绕项目提问知识点(超基础) 4、围绕岗位聊了一堆 风评也不卷,太走运了😙😙😙

  • 面的后台开发,又被写go的捞了,腾讯的后台开发是全面转go了吗,不晓得了 20分钟就结束了,以为是kpi面,竟然过了。 经典八股 进程线程协程区别 tls握手 谈谈http2.0 面试官是懂cpp的,但没问cpp就离谱