dire che voglio eseguire il debug di una semplice classe con un attributo myattribute
. Creo un metodo repr
come questo:Come posso usare `str.format` direttamente come` __repr__`?
class SimpleClass:
def __repr__(self):
return "{0.myattribute}".format(self)
ci si sente un po 'ridondante, quindi io preferirei usare format
direttamente:
class SimpleClass:
__repr__ = "{0.myattribute}".format
... ma che non riesce con un IndexError: tuple index out of range
. Capisco che che format
non può accedere l'argomento self
, ma non vedo il motivo.
sto facendo qualcosa di sbagliato, è questa una limitazione CPython – o che altro?
Si potrebbe fare questo '__repr__ = auto lambda:" {0.myattribute} ". Format (self)' ma penso che sia peggio di un 'def' –
nota: non farlo. –
La mia spiegazione relativa alla movimentazione a mano è che probabilmente ha a che fare con la differenza tra i metodi legati e quelli non associati. – NPE