While trying to figure out how BeautifulSoup works, I incidentally learnt the __str__
method (I'm new to python). So if I did not misperceived then the __str__
method helps to shape how the class will be represented if printed out. For instance:
class Foo:
def __str__(self):
return "bar"
>>> x = Foo()
>>> print x
bar
Right? So asserting that I'm right, is it possible to override the __str__
method of a list of dictionaries? I mean say that in class Foo you have:
class Foo:
def __init__(self):
self.l = [{"Susan": ("Boyle", 50, "alive")}, {"Albert": ("Speer", 106, "dead")}]
Now is it possible to have the following outcome?
>>> x = Foo()
>>> print x.l
"Susan Boyle is 50 and alive. Albert Speer is 106 and dead."
EDIT
Considering agf's solution, how can I access the dictionary once again? I mean if I define __str__
method then apparently I should define something else to retrieve the dictionary as it is. Please consider the following example:
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?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…