当前位置: 首页 > 面试题库 >

在对象中实施打包/拆包

曾修真
2023-03-14
问题内容

我有一个仅包含属性的类,我想对其进行打包。我collections.abc应该采取什么措施来获得这种行为?

class Item(object):

    def __init__(self, name, age, gender)
        self.name = name
        self.age = age
        self.gender = gender

a, b, c = Item("Henry", 90, "male")

我想避免使用namedtuple


问题答案:

您可以打开任何包装Iterable。这意味着您需要实现该__iter__方法,并返回一个迭代器。就您而言,这可能只是:

def __iter__(self):
    return iter((self.name, self.age, self.gender))

或者,您可以将您的班级设为an
Iterator,然后__iter__return self需要执行__next__;这是更多的工作,可能不值得付出。

根据我上面链接的问题,您还可以使用以下方法实现迭代__getitem__

def __getitem__(self, index):
    return (self.name, self.age, self.gender)[index]


 类似资料:
  • 问题内容: 我有一个ConstantData类,该类保存我的JSON索引,我需要在活动之间附加传递它们。但在此之前,我必须首先对此类的对象实现Parcelable。 我的问题是,如何在这里的类中声明对象并将每个对象放入变量中? 我是新手,现在我一无所有。谢谢。请随意在下面修改我的代码。 ConstantData.java 如果我的问题不够清楚,您可以查找以下问题:如何使用Intent将对象从一个A

  • 我试图在包含对象ArrayList的类上使用Parcelable。 更新:Station现在也实现了Parcelable,正如Naveen Dew所建议的那样。 车站等级- 当我把图书馆的包裹递给“为声音而制造”服务时,我遇到了一个问题。 java.lang.RuntimeException:无法使用意图启动服务com.tsuryohananov.IsrailiRadio.BackgroundSo

  • 我正在使用和。 我正在努力获取子对象的子对象来填充。下面是我的课。 应用程序类; 子类: ChildRelationshipType类: 存储库中GetAll方法的一部分,以返回所有应用程序: 子类包含对ChildRelationshipType类的引用。要处理应用程序的子级,我需要这样做: 我在这里得到一个错误,即对象上下文已经关闭。 如何指定每个子对象必须包括对象,就像我上面所做的那样?

  • 问题内容: 到目前为止,我已经看到许多可拆分的示例,但是由于某种原因,当它变得更加复杂时,我无法使其正常工作。我有一个Movie对象,该对象实现了Parcelable。本书对象包含一些属性,例如ArrayLists。执行ReadTypedList时,运行我的应用程序会导致NullPointerException!我真的不在这里 评论类: 如果有人能让我走上正确的道路,我将不胜感激,我已经花了很多时

  • 本文向大家介绍实现js中所有对象的深度克隆(包装对象,Date对象,正则对象)?相关面试题,主要包含被问及实现js中所有对象的深度克隆(包装对象,Date对象,正则对象)?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 通过递归可以简单实现对象的深度克隆,但是这种方法不管是ES6还是ES5实现,都有同样的缺陷,就是只能实现特定的object的深度复制(比如数组和函数),不能实现包装对象Nu

  • 闭包 函数对象可以通过作用域链关联起来,函数体内的变量可以保存在作用域中,这种特性称“闭包”。 要理解闭包,首先要理解嵌套函数的词法作用域规则:先看下列一段代码: var a = "Tom"; //全局变量 function curr () { var a = "Bob"; //局部变量 function () { return a; } ret