記述子を取得するときに追加の引数を渡すことは可能ですか?
たとえば、次のようにします。
class Element(object):
def __init__(self, text='initial'):
self.text = text
def __get__(self, instance, owner, extra_text=''):
print self.text + instance.name + extra_text
そして、次のように使用できます。
class MyClass(object):
elem1 = Element()
elem2 = Element(text='override')
def __init__(self, name):
self.name = name
def print_elems(self):
self.elem1
self.elem1(extra_text='extra')
self.elem2
self.elem2(extra_text='extra')
MyClass('name').print_elems()
そして、次を取得します。
initialname
initialnameextra
overridename
overridenameextra
これを機能させる方法はありますか?必要なパラメーターを呼び出しelem1.__get__(self, self.__class__, extra_text='extra)
て作成しようとしましextra_text
たが、実際にそれを提供する方法がわかりませんでしたか?
記述子を使用しない場合、この構文を実現する別の方法はありますか?
ありがとう!