0

次の構造を想像してください(私はほとんどの関連部分をカットしました):

class mymodificatorclass:
  def callback(self,object):
    print object

class generator(BoxLayout):
  #(...)
  def add(self, *l):
    for i,t in enumerate(self.texts):
      self.mytext.append(TextInput(hint_text=t, on_text_validate=modify.callback(self)))
      self.add_widget(self.mytext[i])

#(...)
modify = mymodificatorclass() #global scope variable

たとえば < main .generator object at 0x433eef0> を出力します。それは結構です。しかし、このクラスのインスタンス変数にどのようにアクセスするのでしょうか?

つまり、望ましい出力は次のようになります。

print XXXXX
$ <__main__.mytext object at 0x433eef0>
print XXXXX.text, XXXXX
$ "text inside" <__main__.mytext object at 0x433eef0>

私はチェックしました:

print object.__class__.__dict__.items() #no mytext here
print object.mytext #no mytext here
print getattr(object,object.mytext) # object generator has no attribute mytext

たとえば、各 TextInput オブジェクトを格納する追加の変数を割り当てることができることはわかっていますが、例を次のように変更した場合は、そうしないほうがよいでしょう。

class generator(BoxLayout):
  def add(self, *l):
    for i,t in enumerate(self.texts):
      self.mytext.append(TextInput(hint_text=t, on_text_validate=self.callback))
      self.add_widget(self.mytext[i])

  def callback(self,object):
    print object

私は望ましい結果を得るでしょう(私はこのようなものを持っていましたが、 mvc に近づく必要があると判断しました)

4

1 に答える 1