簡體   English   中英

在Python中使用參數調用對象的方法

[英]Call a method of an object with arguments in Python

我希望能夠在具有動態函數名稱的Python類上調用不同的方法,例如

class Obj(object):
    def A(self, x):
        print "A %s" % x

    def B(self, x):
        print "B %s" % x

o = Obj()

 # normal route
o.A(1) # A 1
o.B(1) # B 1

 # dynamically
foo(o, "A", 1) # A 1; equiv. to o.A(1)
foo(o, "B", 1) # B 1

什么是“foo”? (或者是否有其他方法?)我確定它必須存在,但我似乎無法找到它或記住它的名稱。 我在內置函數列表中查看了getattrapply和其他內容。 這是一個簡單的參考問題,但唉,我來了!

謝謝閱讀!

好吧, getattr確實似乎是你想要的:

getattr(o, "A")(1)

相當於

o.A(1)

Python中的方法是一流的對象。

getattr(o, 'A')(1)

暫無
暫無

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

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