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

如何在Python中将自定义类对象转换为元组?

何雅惠
2023-03-14
问题内容

如果我们__str__在类中定义方法:

    class Point():
        def __init__(self, x, y):
            self.x = x
            self.y = y


        def __str__(self, key):
            return '{}, {}'.format(self.x, self.y)

我们将能够定义如何将对象转换为str类(转换为字符串):

    a = Point(1, 1)
    b = str(a)
    print(b)

我知道我们可以定义自定义对象的字符串表示形式,但是如何定义对象的列表(更确切地说是元组)呢?


问题答案:

tuple“功能”(这真是一个类型,但是这意味着你可以把它像一个函数)将采取任何迭代,包括一个迭代器,作为其参数。因此,如果要将对象转换为元组,只需确保它是可迭代的即可。这意味着实现一种__iter__方法,该方法应该是一个生成器函数(一个函数体包含一个或多个yield表达式)。例如

>>> class SquaresTo:
...     def __init__(self, n):
...         self.n = n
...     def __iter__(self):
...         for i in range(self.n):
...             yield i * i
...
>>> s = SquaresTo(5)
>>> tuple(s)
(0, 1, 4, 9, 16)
>>> list(s)
[0, 1, 4, 9, 16]
>>> sum(s)
30

您可以从示例中看到,几个Python函数/类型将以iterable作为其参数,并使用其在产生结果时生成的值序列。



 类似资料:
  • 我将springboot控制器与@RequestBody一起使用。我有以下json请求正文 我有一个对应的POJO 我有控制器就像 显然它不起作用,因为是请求中的字符串,而它在MyObject中是布尔值。我希望它有一个逻辑,所以如果在请求中,它将在MyObject中转换为布尔值。Spring有什么机制来实现这一点?

  • 这是我的字符串格式的肥皂xml,我需要如何在Farm对象中形成它。Farm是我的自定义类,任何库都是现成的 使用此代码后,我得到了异常 意外元素(uri:“http://yyyyyy . yyyyy * * * * * * * *”,local:“farm”)。预期的元素有

  • 我有一个类型 现在我想做这样的事情。 如何将我的 转换为基元类型? 它给我的错误是: 将“Rating”类型转换为“number”类型可能是错误的,因为这两种类型都没有充分重叠。如果这是有意的,首先将表达式转换为“未知” 我已经经历过了,但我想要的是它的反面 编辑: tsconfig.json tsc版本:3.2.1

  • 问题内容: 我正在尝试为Json.NET创建一个自定义ValueProvider,它将跳过序列化所有对象的过程,并将仅返回Guid类型的属性来表示其主键(作为参考)。 例: 应成为: 这是我到目前为止编写的代码。我非常接近使其工作,但是就我而言,我似乎无法获取对象值。我怎样才能做到这一点? 问题答案: 您希望将值从嵌套对象内部提升到父对象。为此,您需要将两个价值提供者链接在一起: 一个外部值提供者

  • 使用代替和代替 然后在请求属性中添加 但是当我在javascript中检索它时,我得到了jsonObject的值 我在我的项目中已经使用了下面的库,如果需要,可以使用任何新的库

  • 问题内容: 为这个简单的问题表示歉意…我是Python的新手…我四处搜寻,似乎没有任何反应。 我有一堆datetime对象,我想计算每个对象过去某个固定时间以来的秒数(例如,自1970年1月1日起)。 这似乎只能区分具有不同日期的日期: 任何帮助深表感谢。 问题答案: 在1970年1月1日这个特殊日期,有多种选择。 对于任何其他开始日期,您需要以秒为单位获取两个日期之间的差额。将两个日期相减得到一

  • 问题内容: 我需要加载XML文件并将内容转换为面向对象的Python结构。我要这样: 并将其变成这样: XML数据将具有比这更复杂的结构,并且我无法对元素名称进行硬编码。解析时需要收集属性名称并将其用作对象属性。 如何将XML数据转换为Python对象? 问题答案: 值得一看。 或者以另一种方式构建xml结构: 输出:

  • 现在如何将这个“person”字符串返回到“”模型对象。 这是我的密码。