0

CheckListEditors は、文字列ではなく実装されているオブジェクトのリストを処理できます__str____repr__?

4

1 に答える 1

0

そうではありません。CheckListEditor は、値が文字列または (要素、文字列) のタプルであると想定します。オブジェクトで使用isinstance(basestring)して、それらが文字列であるかどうかをチェックし、そうでない場合は (要素,文字列) のタプルであると想定します。

場合によっては、(要素、文字列) のタプルを提供することが特に便利ではありません。これは主に、リスト内の要素がモデル オブジェクトの特性である場合に当てはまります。(要素、名前) タプルの特性を提供するのは少し厄介です。ただし、インデックス作成の実装は便利な回避策 (または凶悪なハック) であり、CheckListEditor をだまして (要素,名前) タプルを取得するものと認識させます。

class Nameable(HasTraits)

  def __repr__(self): return "Some String Representation"

  def __getitem__(self,key):
    if key==0: return self
    elif key==1: return self.__repr__()
    else: raise KeyError
于 2013-11-07T16:23:19.890 に答える