我来自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")
为什么打电话" raiseFlag"在TermStructureTest()类中?
答案 0 :(得分:6)
在顶层定义的函数据说是在模块(文件)级别定义的。因此,如果您在同一个文件中,则可以全局访问。
如果您使用的是其他文件
import foo #then use foo.raiseFlag()
或
from foo import raiseFlag #use raiseFlag()