

但是,在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
