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