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

Python-如何使用getattr调用变量对象?,python,oop,python-3.x,getattr,Python,Oop,Python 3.x,Getattr,我已经搜索了大量关于如何在python中使用getattr函数的链接,并了解它可以用于调用函数,如下所示: for attr in ['title', 'author']: getattr(b, attr) 相当于, b.title b.author 我的问题是如何动态地引用对象b i、 e.我知道我将调用函数some_function(),但对象可以是a、b、或c。注a、b和c均为同一类别的一部分;只是不同的例子 直到运行时我才知道需要调用哪个函数。我假设“some_functio

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

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

b.title
b.author
我的问题是如何动态地引用对象<代码>b

i、 e.我知道我将调用函数
some_function()
,但对象可以是
a
b
、或
c
。注a、b和c均为同一类别的一部分;只是不同的例子


直到运行时我才知道需要调用哪个函数。

我假设“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
提供了一个绑定方法,这意味着可以直接引用和调用该方法。

设置
some\u函数
一个
obj
参数,并在
getattr
中使用:

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

a、 b、b和c都属于同一类;只是不同的实例…我不清楚?…像其他类的实例一样?你如何知道你必须使用
a
b
c
中的哪一个?最好的方法是不要使用名为
a
b
c
的变量。相反,使用其键为
'a'
'b'
'c'
的词典;因此,为了提供一些上下文,我正在创建一个游戏,每个玩家都可以“登录”。A、 B和C代表不同的玩家。