【发布时间】:2022-01-21 23:37:22
【问题描述】:
我有一个具有多种功能的课程。给定类外的id,是否可以根据id值调用函数?
例如,
如果id = 1,运行fun1
如果id = 2,运行fun2
class functions:
def fun1(self, para1, para2, para3):
pass
def fun2(self, para1, para2, para3):
pass
·
·
·
更准确地说,我想以这种方式调用这些函数。 在另一个班级里
id = x
fun(x, para1, para2, para3)
然后fun(x, para1, para2, para3) 将在functions 类基于x 中调用不同的fun
【问题讨论】:
-
是的,只需创建一个映射,其中
id将是一个键,例如functions = {1: fun1, 2: fun2}。然后使用 id 检索函数并将其命名为functions[1]()。 -
这有点复杂,因为它们是方法。
-
这些是静态方法还是实例方法?实例方法需要一个
self参数。 -
@Barmar 它们将是实例方法。
-
@user8314628,你为什么不再定义一个方法
fun(),其中包含一堆if id == 1: fun1()语句?
标签: python function class call