如何将函数名称传递给函数然后调用它? 不使用
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