Какой тип представления используется здесь

Это понимание списка

foo будет отфильтрованным списком bar, содержащим объекты с атрибутом, обитающим в нем> 1

bar может быть list, set, dict или любым другим итерируемым

. Вот пример, чтобы прояснить

>>> class Bar(object):
...   def __init__(self, occupants):
...     self.occupants = occupants
... 
>>> bar=[Bar(0), Bar(1), Bar(2), Bar(3)]
>>> foo = [x for x in bar if x.occupants > 1]
>>> foo
[<__main__.Bar object at 0xb748516c>, <__main__.Bar object at 0xb748518c>]

. Таким образом, foo имеет 2 Bar объектов, но как мы можем проверить, какие из них они есть? Давайте добавим метод __repr__ к Bar, чтобы он был более информативным

>>> Bar.__repr__=lambda self:"Bar(occupants={0})".format(self.occupants)
>>> foo
[Bar(occupants=2), Bar(occupants=3)]

0
задан Mo Adel 18 January 2019 в 09:02
поделиться