Учитывая этот простой класс:__repr__ для атрибута, который может быть строкой или None?
class Foo(object):
def __init__(self,a=None):
self.a = a
def __repr__(self):
return "Foo(a='{self.a}')".format(self=self)
Я интересно, если есть простой способ получить __repr__
вернуться другое форматирование в зависимости от типа A:
Foo('some_string') # if a is a string
Foo(5) # if a is the integer 5
Foo(None) # if a is None
Очевидно, что для единственный атрибут, который я мог бы тестировать и иметь разные выходные строки, но я думаю, что кто-то должен был решить это передо мной. В частности, у меня есть несколько атрибутов, которые могут быть строками или Нет, и я не вижу, чтобы писать сложную логику для моего __repr__
имеет смысл.
Благодаря Martijn за быстрый ответ! Итак, есть ли у кого-нибудь «трюки» для работы с необязательными параметрами? Я думаю, что Foo() намного красивее Foo (None) ... –