Utskrift av objekt i en lista

När man använder print för att skriva ut en lista, t.ex.

print ["hej", "hopp"]

så är det objektens metod __repr__ som används. För att skriva ut en lista med objekt av en klass man definierat själv på ett fint sätt, behöver man därför definiera metoden __repr__. Se exempel nedan:

class MonsterNoRepr(object):
    def __init__(self, name):
        self.name = name

class MonsterWithRepr(object):
    def __init__(self, name):
        self.name = name

    def __repr__(self):
        return self.name

monsters_no_repr = [MonsterNoRepr("Kitty"), MonsterNoRepr("BangBang")]
monsters_with_repr = [MonsterWithRepr("Kitty"), MonsterWithRepr("BangBang")]

# Här kommer detta kommer att skrivas ut:
# [<__main__.MonsterNoRepr object at 0x108dfed10>, <__main__.MonsterNoRepr object at 0x108dfed50>]
print monsters_no_repr


# Här kommer detta kommer att skrivas ut:
# [Kitty, BangBang]
print monsters_with_repr

Sidansvarig: Jody Foo
Senast uppdaterad: 2013-02-18