类之外的Python调用方法

Wad*_*stk 0 python quantlib

我来自ruby/C#并且是Python的新手.

我正在看下面的代码:

def raiseFlag():
    global flag
    flag = 1

class TermStructureTest():

    def testImpliedObs(self):
        global flag
        flag = None
        h = RelinkableYieldTermStructureHandle()
        settlement = self.termStructure.referenceDate()
        new_settlement = self.calendar.advance(settlement,3,Years)
        implied = ImpliedTermStructure(h,new_settlement)
        obs = Observer(raiseFlag)
        obs.registerWith(implied)
        h.linkTo(self.termStructure)
        if not flag:
            self.fail("Observer was not notified of term structure change")
Run Code Online (Sandbox Code Playgroud)

为什么在TermStructureTest()类中调用"raiseFlag"是有效的?

tsm*_*tsm 6

在顶级中定义的函数据说是在模块(文件)级别定义的.因此,如果您在同一个文件中,则可以全局访问.

如果您使用的是其他文件

import foo #then use foo.raiseFlag()
Run Code Online (Sandbox Code Playgroud)

要么

from foo import raiseFlag #use raiseFlag()
Run Code Online (Sandbox Code Playgroud)