【发布时间】:2021-11-17 09:56:10
【问题描述】:
有谁知道如何使用点运算符调用属于父函数的子函数,但子函数的名称存储在字符串变量中。
def parent_function():
# do something
def child_function():
# do something else
现在想象我有一个名为“child_function”的字符串。有没有办法做到这一点:
method_name = 'child_function'
parent_function.method_name()
我知道 method_name 是一个字符串,所以它是不可调用的。上面的语法显然是错误的,但我想知道是否有办法做到这一点?
谢谢!
【问题讨论】:
-
这不是一个正确的设计。您可以设置一个字典来进行映射:
mapping = {'child_function': child_function, 'other_function': other_function}。这样一来,检查错误就很容易了。 -
即使不是字符串,你怎么称呼它?
child_function是parent_function的本地地址。您无法从外部访问它。 -
您必须设置一些逻辑,父级必须接受一个参数,其中每个值都将运行一个单独的子函数并在该参数上使用 if..else 返回一个值。
-
最大的问题是“你为什么要这样做?”你想解决什么问题?这显然是XY Problem。
-
我同意其他人的观点。不要这样做。您要解决什么实际问题。
标签: python string methods parent-child