この単純なクラスを考えると:
class Foo(object):
def __init__(self,a=None):
self.a = a
def __repr__(self):
return "Foo(a='{self.a}')".format(self=self)
__repr__
のタイプに応じて異なるフォーマットを返す簡単な方法があるかどうか疑問に思っています:
Foo('some_string') # if a is a string
Foo(5) # if a is the integer 5
Foo(None) # if a is None
明らかに、単一の属性について、テストして異なる出力文字列を作成できますが、誰かが私の前にこれに取り組んだに違いないと考えています。具体的には、文字列または None にすることができるいくつかの属性があり、複雑なロジックを記述して__repr__
もあまり意味がないと思います。