但是,在Python中:
def a() print "sssss" print a()
此处a后的()无论如何是不能去掉的,但是此业务平台里却有有return a,而a是下个模块函数,如何实现的呢?为此还研究过函数修饰的问题。 最后在代码中发现原来是如此实现的:
from types import FunctionType; def NODE1(__REQ__,__RSP__,__SND__,__RCV__): print "NODE1" return NODE2 def NODE2(__REQ__,__RSP__,__SND__,__RCV__): print "NODE2" return NODE3 def NODE3(__REQ__,__RSP__,__SND__,__RCV__): print "NODE3" return NONE def IMPL(__REQ__,__RSP__,__SND__,__RCV__): try: _Result_ = None; _Method_ = NODE1; while(type(_Method_) is FunctionType): _Result_ = _Method_(__REQ__,__RSP__,__SND__,__RCV__); _Method_ = _Result_; except Exception,PyExcp: return None; print IMPL("1","2","3","4")
输出为: NODE1NODE2NODE3None,可看出各模块依次执行了。
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/413.html