При попытке выяснить, как работает BeautifulSoup, я случайно узнал метод __str__
(я новичок в python). Поэтому, если я не ошибочно понял, то метод __str__
помогает определить, каким образом класс будет представлен, если будет распечатан. Например:
class Foo:
def __str__(self):
return "bar"
>>> x = Foo()
>>> print x
bar
Правильно? Поэтому, утверждая, что я прав, можно ли переопределить метод __str__
списка словарей? Я имею в виду, что в классе Foo у вас есть:
class Foo:
def __init__(self):
self.l = [{"Susan": ("Boyle", 50, "alive")}, {"Albert": ("Speer", 106, "dead")}]
Теперь можно ли получить следующий результат?
>>> x = Foo()
>>> print x.l
"Susan Boyle is 50 and alive. Albert Speer is 106 and dead."
ИЗМЕНИТЬ
С учетом решения agf, как я могу получить доступ к словарю еще раз? Я имею в виду, если я определяю метод __str__
, то, видимо, я должен определить что-то другое, чтобы получить словарь как есть. Пожалуйста, рассмотрите следующий пример:
class PClass(dict):
def __str__(self):
# code to return the result that I want
class Foo:
def __init__(self):
self.l = PClass({"Susan": ["Boyle", ........ })
>>> x = Foo()
>>> print x.l
# result that works great
>>> y = x.l["Susan"] # this would not work. How can I achieve it?