# 函数名作为字符串,动态调用函数
class Data:
def __init__(self):
pass
def function1(self, name, age):
print("function1=====" + name + "===" + str(age))
return name, age
def function2(self, name, age):
print("function2=====" + name + "===" + str(age))
return name, age
def function3(self, name, age):
print("function3=====" + name + "===" + str(age))
return name, age
def call_fun_by_str(self, fun_str, name, age):
# 在类中调用另一个函数
func_result = getattr(self, fun_str)(name, age)
return func_result
data = Data()
if __name__ == '__main__':
print("\033[1;32m===========1、这是调用function1的输出============\033[0m")
name, age = data.call_fun_by_str("function1", "lily", 18) # 调用function1,传入函数的参数(姓名,年龄)
print(name)
print(age)
print("\033[1;32m===========2、这是调用function2的输出============\033[0m")
name, age = data.call_fun_by_str("function2", "lucy", 28) # 调用function2,传入函数的参数(姓名,年龄)
print(name)
print(age)
print("\033[1;32m===========3、这是调用function3的输出============\033[0m")
name, age = data.call_fun_by_str("function1", "eason", 38) # 调用function3,传入函数的参数(姓名,年龄)
print(name)
print(age)