メンバー変数x
とy
を持つクラスFoo
の__repr__
を実装すると、自動的に文字列を設定する方法はありますか?動作しない例:すべてのメンバー変数のためのPython __repr__
class Foo(object):
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return "Foo({})".format(**self.__dict__)
>>> foo = Foo(42, 66)
>>> print(foo)
IndexError: tuple index out of range
別:
from pprint import pprint
class Foo(object):
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return "Foo({})".format(pprint(self.__dict__))
>>> foo = Foo(42, 66)
>>> print(foo)
{'x': 42, 'y': 66}
Foo(None)
はい、私は
def __repr__(self):
return "Foo({x={}, y={}})".format(self.x, self.x)
ような方法を定義することができますが、多くのメンバ変数がある場合、これは退屈な取得します。私はあなたがこのような何かしたいと思います
いいね!本当の高級。 – Ding
素晴らしい感謝! – BoltzmannBrain