Python - 如何使用getattr调用变量对象?

时间:2016-01-20 20:00:37

标签: python oop python-3.x getattr

我已经搜索了大量关于如何在python中使用getattr函数的链接,并了解它可以用于调用函数,如下所示;

for attr in ['title', 'author']:
    getattr(b, attr)

相当于;

b.title
b.author

我的问题是你如何动态引用一个对象; b

即。我知道我将调用函数some_function(),但对象可以是abc。注意a,b和c都是同一类的一部分;只是不同的实例。

我不知道在运行时我需要打电话。

2 个答案:

答案 0 :(得分:0)

我认为' some_function'也将在运行时确定并将名称放入变量:

fname = 'some_function'

for obj in objlist:
    method = getattr(obj, fname, None)
    if method is None:
        continue

    method()  # you can also put this into a try block
obj上的

getattr为您提供了一个绑定方法,这意味着它可以直接引用和调用。

答案 1 :(得分:0)

设置some_function obj参数并在getattr中使用:

def some_function(obg):
    for attr in ['title', 'author']:
        getattr(obj, attr)