欢迎访问宙启技术站
智能推送

扩展GetOperandValue()函数的功能与实现新的操作数值提取器

发布时间:2023-12-16 20:03:49

扩展GetOperandValue()函数的功能可以实现对不同类型操作数值的提取。我们可以增加对字符串、浮点数和布尔值的提取支持,同时可以实现对列表和字典中的操作数值的提取。

首先,我们需要定义一个新的函数get_operand_value(),该函数根据操作数的类型进行处理。

def get_operand_value(operand):
    if isinstance(operand, str):  # 如果操作数是字符串类型
        return operand
    
    if isinstance(operand, float):  # 如果操作数是浮点数类型
        return operand
    
    if isinstance(operand, bool):  # 如果操作数是布尔值类型
        return operand
    
    if isinstance(operand, list):  # 如果操作数是列表类型
        return [get_operand_value(value) for value in operand]
    
    if isinstance(operand, dict):  # 如果操作数是字典类型
        return {key: get_operand_value(value) for key, value in operand.items()}
    
    # 如果操作数是其他类型,默认返回原始值
    return operand

现在,我们可以对GetOperandValue()函数进行扩展,将新的get_operand_value()函数作为一个辅助函数来使用。

以下是扩展后的GetOperandValue()函数的示例代码:

def GetOperandValue(operand):
    if isinstance(operand, str):  # 如果操作数是字符串类型
        return operand
    
    if isinstance(operand, float):  # 如果操作数是浮点数类型
        return operand
    
    if isinstance(operand, bool):  # 如果操作数是布尔值类型
        return operand
    
    if isinstance(operand, list):  # 如果操作数是列表类型
        return [get_operand_value(value) for value in operand]
    
    if isinstance(operand, dict):  # 如果操作数是字典类型
        return {key: get_operand_value(value) for key, value in operand.items()}
    
    # 如果操作数是其他类型,默认返回原始值
    return operand

使用例子:

# 字符串类型操作数
operand1 = "Hello, world!"
print(GetOperandValue(operand1))  # 输出:"Hello, world!"

# 浮点数类型操作数
operand2 = 3.14
print(GetOperandValue(operand2))  # 输出:3.14

# 布尔值类型操作数
operand3 = True
print(GetOperandValue(operand3))  # 输出:True

# 列表类型操作数
operand4 = [1, 2, 3, [4, 5, 6], 7, 8]
print(GetOperandValue(operand4))  # 输出:[1, 2, 3, [4, 5, 6], 7, 8]

# 字典类型操作数
operand5 = {'name': 'Alice', 'age': 25, 'skills': ['Python', 'Java', 'C++']}
print(GetOperandValue(operand5))
# 输出:{'name': 'Alice', 'age': 25, 'skills': ['Python', 'Java', 'C++']}

通过以上示例,我们可以看到扩展后的GetOperandValue()函数成功地提取了不同类型操作数的值。对于字符串、浮点数和布尔值类型操作数,直接返回其原始值;对于列表和字典类型操作数,递归地提取其中的子操作数值。