【发布时间】:2022-01-03 11:22:25
【问题描述】:
我正在尝试从字典中调用函数 - operation_functions
- key 是数学运算的名称
- value 是 Calculator 类中执行数学运算的静态方法
当我尝试引用 operation_functions 中的函数时,它告诉我“计算器未定义”
我只想知道在同一个类中引用静态方法和静态属性的pythonic方式是什么
class Calculator:
""" This is the Calculator class"""
operation_functions = {
"addition": Calculator.add_number,
"subtraction": Calculator.subtract_number,
"multiplication": Calculator.multiply_number,
"division": Calculator.divide_number,
}
@staticmethod
def calculate_numbers(operation, *vals):
""" will call respective calculation functions based on operation """
function = Calculator.operations[operation]
return function(*vals)
@staticmethod
def add_number(*vals):
""" performs addition and returns resulting value """
History.add_addition_calculation(*vals)
return Calculator.get_last_result()
【问题讨论】:
-
在您创建课程时分配给
operation_functions。在创建完成之前不会分配名称Calculator。 -
这是 Python 中众所周知的问题。不幸的是,Python 让它变得很痛苦。