Python-如何使用getattr调用变量对象?
我已经搜索了大量关于如何在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
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代表不同的玩家。