【问题标题】:Python - calling a function that is in the parent file from imported filePython - 从导入的文件中调用父文件中的函数
【发布时间】:2017-01-03 12:09:59
【问题描述】:

作为我在学校工作的项目的一部分,我有一个主文件 (SM.py) 和一个名为“mods”的文件夹,您可以在其中放置其他 .py 文件,这些文件被导入我的程序和添加一些东西(我不想开始解释我实际上在做什么,因为这需要很长时间,但如果它相关,我可以解释它)。

我想做的是在我的一个 mod 文件中运行一个计时器,它从主文件 (SM.py) 调用一个名为 call_trigger(trigger) 的函数。问题是,我无法将主文件导入 mod 文件,因为这会产生循环依赖。所以我基本上想做的是:

a.py 导入 b.py,a.py 有一个 foo() 函数。 我想在不先导入 a.py 的情况下从 b.py 调用 foo()。

希望我解释得很好,如果您需要进一步解释,我可以提供:)

【问题讨论】:

    标签: python python-import


    【解决方案1】:

    您可以使用回调来实现:

    # Some code from your top level
    def foo():
        print("Foobar")
    
    def bar(param):
        print("param=%s" % param)
    
    # Code in the module
    def baz(callback):
        print("Do something")
        callback()
    
    baz(foo) # notice that there are no () after foo
    baz(lambda: bar(23)) # lambda creates an anonymous function,
                         # which is called by baz. The call within
                         # baz is the point when bar(23) will be executed.
    

    您可以将任何可调用对象作为参数传递给 python 函数,然后可以调用此参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-05
      • 2013-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-09
      • 1970-01-01
      相关资源
      最近更新 更多