Как передать имя функции функции, а затем вызвать ее? Можно ли это сделать без использования
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' не является вызываемым. – jfs
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)
Вы можете использовать свой собственный словарь (имен) вместо globals
.
Непонятно, зачем вам нужны искусственные ограничения, например, не передавать непосредственно объекты функции/класса, не используя getattr()
.
Смежные вопросы
- 1. JQuery передать имя функции переменной и вызвать ее
- 2. Вызвать функцию внутри другой функции, а затем остановить ее javascript
- 3. Как вызвать переменную внутри функции, а затем использовать ее в другой функции
- 4. Как передать функцию в качестве аргумента другой функции в Perl, а затем вызвать ее?
- 5. Построить имя объекта, а затем передать объект функции?
- 6. Передайте строку, содержащую имя функции и ее аргументы другой функции.
- 7. Как передать тип функции и вызвать ее статические методы?
- 8. передать функцию как параметр, а затем выполнить ее в функции jquery
- 9. Как передать в качестве параметра имя функции и ее параметров?
- 10. Как передать имя типа функции?
- 11. Как передать данные одной функции другим, а затем передать эти данные в представление другой функции?
- 12. Как передать значение функции JS, а затем в PHP-скрипт
- 13. передать имя data.frame функции R
- 14. Имя вызова функции, а не указатель функции
- 15. передать текущее имя цели функции
- 16. C - Как передать массив функции, выполнить некоторые операции над ней, а затем вернуть ее в основную?
- 17. Как передать функцию (делегат?) В качестве параметра другой функции в Javascript, а затем использовать ее
- 18. , когда лучше сохранить результат функции, а не вызвать ее снова?
- 19. Как передать имя таблицы функции в Excel
- 20. Как передать, а затем вызвать общие функции обратного вызова, не вызывая циклическую зависимость
- 21. Как передать класс Type функции, чтобы ее отличить от функции
- 22. c передать строку для функции, а затем вернуть строку
- 23. Копирование функции в функции предотвращает ее работу
- 24. Pandas - Как передать имя столбца в функции
- 25. Как передать имя переменной класса функции?
- 26. NodeJS, Создание функции, а затем экспортировать его
- 27. Как передать вызов функции?
- 28. Как вызвать динамическое имя переменной внутри функции?
- 29. Как передать словарь функции
- 30. имя функции функции для функции с JSON
В чем причина не использования getattr? Кажется очевидным решением. – mavnn
хорошо ... Я не могу быть уверен, что класс является классом нового стиля: -/ –
Вам следует передать класс, а не имя класса. Создайте экземпляр, вызвав класс точно так же, как вы бы вызвали функцию в ответе SilentGhost. –