[英]Python - How do you use getattr to call an variable object?
我搜索了很多鏈接,了解如何在python中使用getattr函數,並了解它可以按以下方式用於調用函數;
for attr in ['title', 'author']:
getattr(b, attr)
等同於
b.title
b.author
我的問題是如何動態引用對象? b
即我知道我將調用函數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_function
和obj
參數並在getattr
使用:
def some_function(obg):
for attr in ['title', 'author']:
getattr(obj, attr)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.