Получение объекта функции для функций int () и float () - PullRequest
5 голосов
/ 22 июня 2011

Я хочу передать функцию функции в Python.Я знаю, что могу сделать это, просто поместив имя функции в качестве параметра, например:

blah(5, function)

Однако я хочу передать функцию int() и функцию float() этой функции.Если я просто введу имя функции, то это предполагает, что я имею в виду типы int и float, а не функции для преобразования строк в целые и плавающие.

Есть ли способ передать функцию довольночем тип?

Ответы [ 2 ]

11 голосов
/ 22 июня 2011

Просто передать int и float в порядке.Вы правы, что на самом деле это будет передавать объекты типа вместо функций, но это не важно.Важно то, что переданный объект может быть вызван, и вызов объектов типа будет делать то, что вы ожидаете.

3 голосов
/ 22 июня 2011

Объекты типа являются тем, что вы хотите.

>>> def converter(value, converter_func):
...     new_value = converter_func(value)
...     print new_value, type(new_value)
... 
>>> converter('1', int)
1 <type 'int'>
>>> converter('2.2', float)
2.2 <type 'float'>
>>> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...