Call a class A method from a class B instance? Do I miss something?

jfong at ms4.hinet.net jfong at ms4.hinet.net
Thu Aug 17 20:03:53 EDT 2017


I study some codes of a tutorial about tkinter (https://github.com/daleathan/widget-tour-py3) and can't figure out how it works. 
Below is the codes from its two major files:
----------------------------
# file infrastructure.py
...
...
class callit:
 def __init__(self, function, *args ):
 self.f = function
 self.args = args
 def __call__(self, *ignored):
 self.f(*self.args)
...
------------------------
# file widget.py
...
from infrastructure import *
...
class DemoMainWindow(Frame):
 ...
 def _fill_textarea(self):
 ...
 # bind events
 self.text.tag_bind(tag, '<Any-Enter>',
 callit(self.demoenter_callback, tag) )
 ...
 def demoenter_callback(self, tag):
 ...
 self.text.configure(cursor='hand2')
 ...
----------------------
My question is that the object which was left by callit(self.demoenter_callback, tag) is a callit instance, and the method it calls is a DemoMainWindow's method.
How it is possible?
Best Regards,
Jach Fong


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /