簡體   English   中英

Python-如何使用getattr調用變量對象?

[英]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() ,但是對象可以是abc 注意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_functionobj參數並在getattr使用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM