我想确定要动态查找的属性,
考虑下面的python代码:

def f(x, a):
    return x.a

class X:
    b = 4

x = X()
print(f(x, b))


如果python具有此属性,则上面的代码应显示4。

有没有办法用任何语言做到这一点?
我无法想到使用C ++模板或动态类型的方法。

最佳答案

我认为您无法以尝试的方式动态访问对象的属性。内置功能getattr将允许您执行此操作。正如marcin建议的那样,您可以将f替换为getattr

http://docs.python.org/library/functions.html#getattr

def f(x, a)
  return getattr(x, a)


要么

class X:
    b = 4

getattr(x, a)

print(getattr(x, "b"))

关于c++ - 传递要动态查找的成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9383891/

10-13 06:45