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

什么使python中的事情变得可迭代

徐瀚
2023-03-14
问题内容

是什么使Python变得有些可迭代?即。可以用它循环for

我可以在Python中创建一个可迭代的类吗?如果是这样,怎么办?


问题答案:

要使类可迭代,请编写一个__iter__()返回迭代器的方法:

class MyList(object):
    def __init__(self):
        self.list = [42, 3.1415, "Hello World!"]
    def __iter__(self):
        return iter(self.list)

m = MyList()
for x in m:
    print(x)

版画

42
3.1415
Hello World!

该示例使用一个列表迭代器,但你也可以写由制作自己的迭代器__iter__()一个发电机或通过返回一个迭代器类来定义的实例__next__()方法。



 类似资料:
  • 本文向大家介绍Python语言什么可以迭代,包括了Python语言什么可以迭代的使用技巧和注意事项,需要的朋友参考一下 示例 Iterable可以是任何一项只能逐一接收的项目。内置的Python集合是可迭代的: 生成器返回可迭代项:            

  • 问题内容: 我继承了一个包含许多大类的项目,这些大类仅由类对象(整数,字符串等)组成。我希望能够检查是否存在属性,而无需手动定义属性列表。 是否可以使用标准语法使其本身可迭代的python 类 ?也就是说,我希望能够使用(甚至使用)遍历类的所有属性,而无需首先创建类的实例。我想我可以通过定义来做到这一点,但是到目前为止,我还没有完全找到想要的东西。 通过添加如下方法,我已经实现了一些我想要的东西:

  • 我试图创建一个列表k,其中包含的所有元素,除了那些索引位于中的元素。我做错了什么?错误是:

  • 有没有办法在for循环中使变量可迭代?我正在尝试制作一个密码生成器,对于for循环,我使用一个输入数字的变量。 当我试图在循环中使用变量时,我得到< code > ' int ' object is not iterable 。

  • 问题内容: 为什么接口不扩展? 该方法可以简单地返回。 是故意的还是对Java设计师的监督? 能够将循环与这样的迭代器一起使用将很方便: 其中返回迭代器。 问题答案: 因为迭代器通常指向集合中的单个实例。Iterable意味着可以从一个对象获得迭代器以遍历其元素-无需迭代单个实例(迭代器代表的是该实例)。

  • 问题内容: 我了解Python中可变对象和不可变对象之间的区别。我已经阅读了许多讨论差异的文章。但是,我还没有读到任何有关WHY整数是不可变对象的信息。 是否有这个原因?还是答案是“就是这样”? 编辑:我被提示将这个问题与其他问题“区分开”,因为这似乎是先前提出的问题。但是,我相信我要问的更多是哲学性的Python问题,而不是技术性的Python问题。 看来Python中的“原始”对象(即字符串,