1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
class_template = """
class DND(_classname_):
def __init__(self, *args, **kwds):
_classname_.__init__(self, *args, **kwds)
self.dummyVar = None
def dummyFunc(self):
return self.dummyVar.upper()
"""
def getDND(classname, *args, **kwds):
exec class_template.replace('_classname_', classname)
obj = DND(*args, **kwds)
return obj
if __name__ == "__main__":
try:import Tkinter
except: import tkinter as Tkinter
win = getDND('Tkinter.Tk')
bt = getDND('Tkinter.Button', win, text='DND object', width=50, height=3)
bt.grid()
# test
assert win.dummyVar == None
win.dummyVar = 'azerty'
assert win.dummyFunc() == 'AZERTY'
assert bt.dummyVar == None
bt.dummyVar = 'qwerty'
assert bt.dummyFunc() == 'QWERTY'
win.mainloop() |