Python,以级联顺序调用多个函数(不是嵌套函数)

问题描述 投票:-1回答:1

我正在尝试执行以下操作:

如果我有:

class A():
      def a(self):
          return 1

class B():
      def b(self):
          return A()

我可以做

new_b = B()
new_b.b().a() # this returns 1

我的问题是:

我该怎么办b()。a(),其中b和a作为方法中的函数参数给出。

即:以下:

def f(f1, f2):
     return f1().f2()

new_a = A()
f_a = new_a.a
new_b = B()
f_b = new_b.b

f(f_b, f_a) # error 

追踪(最近一次通话):文件“”,第1行,在文件“”,第2行,在fAttributeError:“ A”对象没有属性“ f2”

另外,我可以提供f_b作为字符串“ b”并仍然可以调用它吗?

python python-3.x lambda reflection func
1个回答
0
投票

我认为您要为此更改功能

def f(f1, f2):
     #return f1().f2()
     print(getattr(f1(),'a')()) 

回答您的两个问题。

© www.soinside.com 2019 - 2024. All rights reserved.