Files
2024-05-19 22:28:27 +08:00

50 lines
1.4 KiB
Python

class MultiIntFormula:
DESCRIPTION = """
输入参数:n0,n1,n2...可根据需求加入入参。类型:int,float
输出参数:有一个int,有一个float 值一样,类型不一样,根据需求使用
表达式:使用+-*/%等运算符进行运算,加+,减-,*乘,除/,取余%,括号(),注意全部是英文符合。
示例:
n0+n1/n2*n3
"""
def __init__(self):
pass
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"expression": ("STRING",{"multiline": True}),
},
"optional": {
"n0": ("INT,FLOAT", ),
"n1": ("INT,FLOAT", ),
}
}
RETURN_TYPES = ("INT","FLOAT",)
FUNCTION = "evaluate"
CATEGORY = "lam"
OUTPUT_NODE = True
def evaluate(self, expression, **kwargs):
lookup = {}
for arg in kwargs:
if type(kwargs[arg]) == int or type(kwargs[arg])== float:
lookup[arg] = kwargs[arg]
msg=None
r=0
try:
r = eval(expression, lookup)
msg=[r]
except Exception as e:
msg=["表达式错误"]
return {"ui": {"value": msg}, "result": (int(r), float(r),)}
NODE_CLASS_MAPPINGS = {
"MultiIntFormula": MultiIntFormula
}
NODE_DISPLAY_NAME_MAPPINGS = {
"MultiIntFormula": "多参数学表达式"
}