本文整理汇总了Python中myclips.functions.Function.Function类的典型用法代码示例。如果您正苦于以下问题:Python Function类的具体用法?Python Function怎么用?Python Function使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Function类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: execute
def execute(self, theToken):
# resolve variables from the token
resolved = {}
linearToken = theToken.linearize()
for theVar, theLocation in self._variables.items():
try:
assert isinstance(theLocation, VariableLocation)
resolved[theVar] = theLocation.toValue(linearToken[theLocation.patternIndex])
except:
import myclips
myclips.logger.debug("%s: unresolvable variable %s: %s:%s %s", self.completeRuleName(), theVar, theLocation.patternIndex, theLocation, linearToken )
# prepare the FunctionEnv object
theEnv = FunctionEnv(resolved, self._network, self._network.modulesManager, self._network.resources)
# execute all rhs passing FunctionEnv
# theEnv could be modified from the function call.
# This THE way to share memory between functions
for action in self._rhs:
assert isinstance(action, types.FunctionCall)
# get the function definition linked to the FunctionCall
#funcDefinition = action.funcDefinition
#assert isinstance(funcDefinition, FunctionDefinition)
# expand the args
#funcDefinition.linkedType.__class__.execute(funcDefinition.linkedType, theEnv, *(action.funcArgs))
Function.doExecute(action, theEnv)
开发者ID:julianpistorius,项目名称:myclips,代码行数:33,代码来源:PNode.py
示例2: do
def do(self, funcEnv, resourceId, *args, **kargs):
"""
Retract function handler implementation
"""
# convert <TYPE:value> to python value
resourceId = Function.resolve(self, funcEnv, self.semplify(funcEnv, resourceId, types.Symbol, ("1", "symbol")))
if resourceId != "nil":
try:
resource = funcEnv.RESOURCES[resourceId]
except KeyError:
raise InvalidArgValueError("Resource with logical name %s cannot be found"%str(resourceId))
else:
# for fragment in args:
#
# # revolve variables and function calls
# fragment = self.resolve(funcEnv, self.semplify(funcEnv, fragment))
#
# resource.write(str(fragment))
resource.write("".join([str(self.resolve(funcEnv, self.semplify(funcEnv, x))) for x in args]))
return types.NullValue()
开发者ID:julianpistorius,项目名称:myclips,代码行数:25,代码来源:Printout.py
示例3: resolve
def resolve(self, funcEnv, arg):
"""
Override Function.resolve to manage the <Symbol:crlf> conversion to NEWLINE
and to remove quotes in types.String values
"""
if isinstance(arg, types.Symbol) and arg.pyEqual("crlf"):
return "\n"
else:
return Function.resolve(self, funcEnv, arg)
开发者ID:julianpistorius,项目名称:myclips,代码行数:9,代码来源:Printout.py
示例4: __init__
def __init__(self, *args, **kwargs):
Function.__init__(self, *args, **kwargs)
开发者ID:julianpistorius,项目名称:myclips,代码行数:2,代码来源:Subtraction.py
示例5: __init__
def __init__(self, cmpType=None, *args, **kwargs):
Function.__init__(self, *args, **kwargs)
self._cmpType = cmpType if cmpType is not None else types.BaseParsedType
开发者ID:julianpistorius,项目名称:myclips,代码行数:3,代码来源:_TypeTesting.py
示例6: isinstance
# add the new rule to the network
self._network.addRule(parsed)
elif isinstance(parsed, types.DefFactsConstruct):
# add the deffacts
self._network.addDeffacts(parsed)
elif isinstance(parsed, types.FunctionCall):
# execute the function
assert isinstance(parsed, types.FunctionCall)
# prepare the FunctionEnv object
theEnv = FunctionEnv({}, self._network, self._network.modulesManager, self._network.resources)
#funcDefinition = parsed.funcDefinition
#theResult = funcDefinition.linkedType.__class__.execute(funcDefinition.linkedType, theEnv, *(parsed.funcArgs))
# replace old function bootstrap method with a faster one
theResult = Function.doExecute(parsed, theEnv)
if not isinstance(theResult, types.NullValue):
return theResult
elif isinstance(parsed, types.GlobalVariable):
# resolve the global value
return self._network.modulesManager.currentScope.globalsvars.getDefinition(parsed.evaluate()).linkedType.runningValue
elif isinstance(parsed, types.BaseParsedType):
return parsed
开发者ID:julianpistorius,项目名称:myclips,代码行数:29,代码来源:Interpreter.py
示例7: isinstance
parsed = theEnv.network.getParser().parse(aString, extended=True)
except Exception, e:
print >> theEnv.RESOURCES['werror'], theEnv.network.getParser().ExceptionPPrint(e, aString)
os.chdir(oldcwd)
return types.Symbol('FALSE')
else:
cString = ""
for p in parsed:
if isinstance(p, types.DefRuleConstruct):
theEnv.network.addRule(p)
elif isinstance(p, types.DefFactsConstruct):
theEnv.network.addDeffacts(p)
elif isinstance(p, types.FunctionCall):
theResult = Function.doExecute(p, theEnv)
if not isinstance(theResult, types.NullValue):
print >> theEnv.RESOURCES['wtrace'], str(theResult)
os.chdir(oldcwd)
return types.Symbol('TRUE')
Batch.DEFINITION = FunctionDefinition("?SYSTEM?", "batch", Batch(), types.Symbol, Batch.do ,
[
Constraint_ExactArgsLength(1),
Constraint_ArgType((types.Symbol, types.String), 0)
],forward=False)
开发者ID:julianpistorius,项目名称:myclips,代码行数:29,代码来源:Batch.py
示例8: __init__
def __init__(self, theParams, theActions, *args, **kwargs):
Function.__init__(self, *args, **kwargs)
self._actions = theActions if isinstance(theActions, list) else []
self._params = theParams if isinstance(theParams, list) else []
开发者ID:julianpistorius,项目名称:myclips,代码行数:4,代码来源:UserFunction.py
注:本文中的myclips.functions.Function.Function类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论