Форум сайта python.su
0
Как можно реализовать метод Add, чтобы он возвращал объект? Сейчас возвращает пустой список.
# Простенький метод class Item(list): def __init__(self): self.Visible = True def Add(self): newItem = Item() self.append(newItem) return newItem class Properties: def __init__(self): self.Items = Item() p = Properties() print(p.Items) # [] p.Items.Add() print(p.Items) # [[]]
Отредактировано KULINAR847 (Окт. 23, 2019 10:41:19)
Офлайн
186
> Как можно реализовать метод Add, чтобы он возвращал объект?
Какой объект он должен вернуть?
Офлайн
22
# Простенький методСудя по тому, что ты тут пытаешься делать, совсем не “простенький”…
Офлайн
0
Rodegast я хотел расширить класс list аттрибутом Visible. Смутило то, что во время print он вернул [] пустой список - что правильно, а не <__main__.Item object at 0x006E5430>. Это натолкнуло на мысль, что Add возвращает (newItem - объект(инстанс)) типа list, а не Item, что там ошибка?!?!?
Но после всё встало на свои места - выполнил код для проверки:
p = Properties() print(p.Items) e = p.Items.Add() e.Visible = False # аттрибут добавлен print(p.Items[0].Visible) # False
Отредактировано KULINAR847 (Окт. 23, 2019 13:05:33)
Офлайн
0
StriverДа не, всё просто оказалось)
Судя по тому, что ты тут пытаешься делать, совсем не “простенький”…
Офлайн