如何将函数作为类成员的参数传递给类,该类将在方法中使用该类成员来重复计算该成员?

2024-10-02 10:24:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在编写一个脚本,该脚本允许我定期以Windows桌面通知的形式以设定的间隔发送多个提醒,而不会相互冲突。为此,我创建了一个LockedNotifier类,该类创建一个win10toast通知,该进程需要一个锁来防止竞争条件

我有这个类的实例调用程序中其他地方定义的函数作为它的成员,我试图找出用一个可以稍后调用的成员函数初始化这个类的表示法。当前,初始化对象会在对象实例化时将成员初始化为该函数的求值。如何将函数本身作为对象成员而不是函数的返回值传递给init()

例如:

class MyClass:
    def __init__(MyFunc):
        function = MyFunc()
        
        
        
MyFuncDef():
    #Do Something
    
def main():
    
    MyObj = MyClass(MyFuncDef)
    MyObj.function()

if __name__ == 'main':
    main()

Tags: 对象实例函数脚本initmainwindowsdef
1条回答
网友
1楼 · 发布于 2024-10-02 10:24:49

简单的回答是肯定的,在传递函数时,可以通过删除()来实现

当您编写()时,您正在调用一个函数以获取其返回值,而如果没有它,您将传递函数本身

reminder_1 = MultiToast(title="Stopwatch", 
                        msg=get_message, 
                        icon_path=clock, 
                        interval=show_interval_1, 
                        count=-1, 
                        runonstart=True, 
                        duration=show_duration)

相关问题 更多 >

    热门问题