在python中等效于ruby obj.send

Pun*_*aul 10 python send

在ruby中如果我有一个对象obj,使用一个名为funcname的方法,我可以使用以下语法obj.send(funcname)调用该方法

python中有类似的东西吗?

我想这样做的原因是,我有一个switch语句,我在其中设置了funcname,并希望在switch语句的末尾调用它.

Gle*_*ard 19

getattr(obj, "name")(args)
Run Code Online (Sandbox Code Playgroud)

​​​​


Geo*_*tin 9

嗯... getattr(obj,funcname)(*args,**kwargs)?

>>> s = "Abc"

>>> s.upper()
'ABC'

>>> getattr(s, "upper")()
'ABC'

>>> getattr(s, "lower")()
'abc'
Run Code Online (Sandbox Code Playgroud)