如何將函數名稱傳遞給函數然後調用它? 不使用
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. 將名稱空間傳遞給函數
- 4. 將一個函數傳遞給一個指令,然後用參數調用它
- 5. 如何將參數(名稱)傳遞給函數工廠?
- 6. 如何將類變量的名稱傳遞給函數?
- 7. l_ply:如何將列表的名稱屬性傳遞給函數?
- 8. 承諾,如何將變量傳遞給。然後函數
- 9. 如何將ASP.NET控件名稱傳遞給Javascript函數?
- 10. 如何將函數指針傳遞給函數內的函數
- 11. 將參數傳遞給回調函數
- 12. 如何將引用傳遞給函數
- 13. 如何將參數傳遞給傳遞給mapPartitions的函數?
- 14. 將視圖的名稱作爲參數傳遞給函數
- 15. 如何將參數傳遞給函數
- 16. 如何將參數傳遞給函數?
- 17. 將列名傳遞給使用dplyr函數的書面函數
- 18. 將函數引用或函數名稱傳遞給_Widget.connect()時的不同行爲
- 19. 如何將參數傳遞給ElapsedEventHandler調用的函數?
- 20. 如何將函數名稱傳遞給Laravel 5中的模型事件回調
- 21. 將值傳遞給函數時調用的函數
- 22. 將對象傳遞給函數調用中的函數
- 23. 將函數傳遞給另一個函數,並將其稱爲
- 24. 將數組傳遞給函數,然後更改值?
- 25. Matlab:在將函數傳遞給函數時指定參數的名稱(Ruby`hash`)
- 26. 如何在函數參數傳遞給函數時清空它?
- 27. 將按鈕名稱傳遞到函數
- 28. 將函數傳遞給函數SML
- 29. JQuery將此函數傳遞給函數
- 30. 將函數傳遞給jQuery .ready()函數
不使用getattr的原因是什麼?看起來很明顯的解決方案。 – mavnn 2009-11-02 10:02:08
好吧......我無法確定這個班是新班級: -/ – 2009-11-02 10:06:00
您應該通過班級,而不是班級名稱。通過調用類來創建實例的方式與您在SilentGhost的回答中調用函數的方式完全相同 – 2009-11-02 10:25:08