2011-07-07 27 views
3

動態創建我有一個類定義__repr __(個體經營)在Python

class FooBar(object): 
    def __repr__(self): 
     pass 

,我要實現的功能__repr__。由於我使用FooBar作爲一種方便的容器,我動態地添加了一些屬性,我也想動態地生成__repr__。 (如果這是不好的實踐,請解釋和賜教:-))

我認爲是這樣的:

def __repr__(self): 
    return '<FooBar({WHAT IS ELEGANT AND GOES HERE?})>'.format(**self.__dict__) 

有什麼建議?謝謝!

+0

不夠具體信息更好。主觀。你的選擇。它包含什麼樣的東西? –

+0

@Chris:僅限字符串。 – Aufwind

+0

問題是:你爲什麼使用動態屬性?例如,你不能使用字典嗎?在你的例子中,你可以有一個屬性來存儲字符串''''並在__repr__中執行'self.yourstring.format',但是,我認爲你更好地提供其他選項。 – renatopp

回答

1
>>> '<FooBar({!r})>'.format({'a':1, 'b':2}) 
"<FooBar({'a': 1, 'b': 2})>" 

上python2.6的,你不得不使用{0!r}

我覺得

'<FooBar({!r})>'.format(vars(self)) 

比指.__dict__

相關問題