在python OOP中是否有一个魔术和dunder方法来制作列表对象

PCM*_*PCM 2 python list

例如 - 我有一堂课

class SimpleClass:
      def __init__(self,strings):
          pass
Run Code Online (Sandbox Code Playgroud)

我可以为此添加一个特殊的方法__list__或其他方法,以便当我这样做时-

a = SimpleClass('hi')
list(a)
Run Code Online (Sandbox Code Playgroud)

将制作一个字符串列表,但使用更多我自己的方法。我的意思是,当我调用list(a)一个列表时,将创建字符串加上我的一些额外字符串到该列表

And*_*ely 5

你可以实现__iter__方法。例如:

class SimpleClass:
    def __init__(self, strings):
        self.strings = strings

    def __iter__(self):
        yield self.strings
        yield "something else"


a = SimpleClass("hi")
print(list(a))
Run Code Online (Sandbox Code Playgroud)

印刷:

['hi', 'something else']
Run Code Online (Sandbox Code Playgroud)

  • @PCM你不必使用“yield”,但它是最简单的。例如,请查看此处:/sf/answers/2817875301/ (2认同)