如何將函數名稱傳遞給函數然後調用它? 不使用
getattribute
可以這樣做嗎?如何將函數的名稱傳遞給函數,然後調用它?如何將類名傳遞給函數然後實例化類? 我知道我只是可以將該類的實例直接傳遞給該函數,但重要的是該類在調用該函數後被實例化了。
1
A
回答
5
def outer(f): # any name: function, class, any callable
return f() # class will be instantiated within the scope of the function
+0
'name'通常是'string'。 'string'不可調用。 – jfs 2009-11-02 10:13:28
1
如果你有數量有限的選擇你的計劃使用,您可以設置與功能/類的字符串鍵和值的字典。
0
爲什麼不直接使用函數和類?
class A(object):
pass
def f():
pass
def g(func, cls):
func()
x = cls()
g(f, A)
2
namespace = globals()
result = namespace[func_name]()
instance = namespace[class_name](*some_args)
您可以使用自己的字典空間(namespace),而不是globals
。
目前尚不清楚爲什麼你需要人工約束,如不直接傳遞函數/類對象,不使用getattr()
。
相關問題
- 1. 如何將函數名稱傳遞給回調函數?
- 2. 如何將實例名稱傳遞給函數,然後調用那些方法
- 3. C++將函數名稱傳遞給宏並調用它
- 4. 將參數傳遞給名稱引用的回調函數
- 5. 將名稱空間傳遞給函數
- 6. 將一個函數傳遞給一個指令,然後用參數調用它
- 7. 傳遞參數給。然後$函數
- 8. 如何將參數(名稱)傳遞給函數工廠?
- 9. 傳遞函數中的參數,然後調用函數onClick
- 10. 分割字符串,然後將它傳遞給函數
- 11. 如何將linc傳遞給類函數並調用它?
- 12. 如何將Google地圖的名稱傳遞給函數?
- 13. 如何將類變量的名稱傳遞給函數?
- 14. l_ply:如何將列表的名稱屬性傳遞給函數?
- 15. 如何將函數名稱傳遞給extra_context中的模板
- 16. 如何將要測試的函數名稱傳遞給unit test.TestCase?
- 17. 如何將值傳遞給JS函數,然後傳遞給PHP腳本
- 18. 承諾,如何將變量傳遞給。然後函數
- 19. 如何將函數的名稱作爲參數傳遞,然後再引用該函數?
- 20. 如何將ASP.NET控件名稱傳遞給Javascript函數?
- 21. 將參數傳遞給匿名函數
- 22. 如何將函數指針傳遞給函數內的函數
- 23. 如何將參數傳遞給使用setTimeout調用的函數?
- 24. 將參數傳遞給回調函數
- 25. 將參數傳遞給回調函數
- 26. 我在調用函數時如何傳遞參數名稱?
- 27. 如何將引用傳遞給函數
- 28. Lua/Corona - 如何傳遞函數作爲參數,然後調用該函數
- 29. 如何將參數傳遞給傳遞給mapPartitions的函數?
- 30. C++將數組傳遞給函數,然後將其傳遞給另一個函數
不使用getattr的原因是什麼?看起來很明顯的解決方案。 – mavnn 2009-11-02 10:02:08
好吧......我無法確定這個班是新班級: -/ – 2009-11-02 10:06:00
您應該通過班級,而不是班級名稱。通過調用類來創建實例的方式與您在SilentGhost的回答中調用函數的方式完全相同 – 2009-11-02 10:25:08