Python 类定义和方法
我附加了一些代码的清单,用于一些类定义。我的目标是创建一个具有事件处理程序的类,该类可以在计时器运行时重复任务。在TimerClass中,我在类Python 类定义和方法,python,class,methods,lambda,Python,Class,Methods,Lambda,我附加了一些代码的清单,用于一些类定义。我的目标是创建一个具有事件处理程序的类,该类可以在计时器运行时重复任务。在TimerClass中,我在类\uuuuu init\uuuu中定义了一个关于\u timed\u事件的方法。我在main函数a=TimerTest()中安装了一个TimerTest类,发现它也执行事件处理程序 问题1。这是一种在创建对象实例时自动执行函数的方法吗 问题2。我想把ClassA.method1传给ClassB。我在下面的main()passingsm.add()Dela
\uuuuu init\uuuu
中定义了一个关于\u timed\u事件的方法。我在main函数a=TimerTest()
中安装了一个TimerTest类,发现它也执行事件处理程序
问题1。这是一种在创建对象实例时自动执行函数的方法吗
问题2。我想把ClassA.method1传给ClassB。我在下面的main()
passingsm.add()
Delay类中所使用的方法正确吗?是否可以创建Delay类的实例并在一行上动态传递类实例SimpleMath(X,Y)和add()方法的等价物?Lambda函数
import System
from System.Timers import (Timer, ElapsedEventArgs)
class TimerTest(object):
def __init__ (self):
self.timer = Timer()
self.timer.Interval= 1000
self.timer.Enabled = True
def on_timed_event (source, event):
print 'event from TimerTest class'
print "The Elapsed event was raised at " , event.SignalTime
print '------------'
self.timer.Elapsed += on_timed_event
class Delay(object):
def __init__(self,class_method):
self.delay = Timer()
self.delay.Interval= 2000
self.method= class_method
def on_timed_delay_event (self,sender, event):
print 'from Delay Class event handler'
print "event has elapsed event was raised at " , event.SignalTime
print 'addition results',self.method
print '------------'
def start(self):
print 'Delay timer Start'
self.delay.Elapsed += self.on_timed_delay_event
self.delay.Enabled= True
def stop(self):
self.delay.Enabled= False
self.delay.Elapsed -= self.on_timed_delay_event
class SimpleMath(object):
def __init__(self,a,b):
self.a =a
self.b =b
def add (self):
return self.a + self.b
def main():
a = TimerTest()
sm= SimpleMath(10,12)
print sm.add()
t= Delay(sm.add())
t.start()
if __name__ == '__main__':
main()
我正在为我的问题补充更多细节。类任务和请求被导入到包含MainForm类的模块中。在MainForm中,我创建了一个Request类的实例,它被传递给使用它的Tab类,并传递给Task类,Task类应该在触发事件时执行任务。在下面的简明清单中,self.myRequest.command1只执行一次。在execute内部分配self.params并打印None
之后,我添加了一个打印。是否有一种特殊的方式可以传递self.myRequest.command1(arg1、arg2、arg3)
一,
2.不,不需要()
将函数作为参数传入
A类:
定义某些函数():
通过
def func_of_func(func):
return fund()
def main():
a = A()
func_of_func(a.some_func) # no parentheses after some_func
我原以为我理解你的答案,但我在将一种方法传递给另一种方法时遇到了问题。我补充了关于我的特殊问题的更多信息。
class A:
def some_func():
pass
def __init__(self):
self.init = 1
self.some_func() # just call member function
def func_of_func(func):
return fund()
def main():
a = A()
func_of_func(a.some_func) # no parentheses after some_func