Ironpython中的全局变量

时间:2011-02-15 12:42:40

标签: python ironpython xml-rpc

我在尝试理解铁蛙范围规则时遇到了很大麻烦。

使用以下脚本:


global data
// function for call xml-rpc 
def CallListDatabases(self):
    global synC, synCtx, result, data   
        self.synCtx = synC.Current
        service = XmlRpcService("http://localhost:8000/rpc")
        req = XmlRpcRequest(service, 'vocab_list')
        req.XmlRpcCallCompleteHandler += self.req_XmlRpcCallCompleteHandler
        result = req.Execute(self)

//if call xml-rpc complete then use working rpc 
def req_XmlRpcCallCompleteHandler (self, response, userState):
    global synCtx, synC, data
        word = []
        f = response.TryCast(clr.GetClrType(Fault))
        if f != None:
            self.synCtx.Post(self.SetCallResult, f)
            if f.FaultCode == -1:
                pass
        else:
            self.synCtx.Post(self.SetCallResult, response)

// show result with rpc complete
def SetCallResult(self, userState):
        global data, result                
        if userState.GetType() == clr.GetClrType(Fault):
            f = userState
            if f != None:
                print str(f.FaultString)
                return    
        response = userState
        result = response.TryCast(clr.GetClrType(Array[str]))
        data = result   //I want to use value it

print "value: "+data  //show value     

问题
打印“值:”+数据


值:[]<<< ========不值

1 个答案:

答案 0 :(得分:1)

首先,您似乎没有调用任何已定义的函数。如果 调用函数,则response.TryCast(clr.GetClrType(Array[str]))的返回值似乎是一个空列表。您是否在print内尝试SetCallResult()结果的值?我敢打赌它是[]