Я изучаю python. Мне нравится использовать help() или interinspect.getargspec для получения информации о функциях в оболочке. Но все равно я могу получить аргумент/возвращаемый тип функции.Получить типы аргументов в python
ответ
Существует функция, называемая type()
.
Here are the docs
Вы не можете сказать заранее, какой тип функция будет возвращать
>>> import random
>>> def f():
... c=random.choice("IFSN")
... if c=="I":
... return 1
... elif c=="F":
... return 1.0
... elif c=="S":
... return '1'
... return None
...
>>> type(f())
<type 'float'>
>>> type(f())
<type 'NoneType'>
>>> type(f())
<type 'float'>
>>> type(f())
<type 'int'>
>>> type(f())
<type 'str'>
>>> type(f())
<type 'float'>
>>> type(f())
<type 'float'>
>>> type(f())
<type 'NoneType'>
>>> type(f())
<type 'str'>
Это, как правило, хорошая практика, чтобы возвращать только один тип объекта из функции, но Python не принуждает, что при вы
Если вы имеете в виду при некотором вызове функции, сама функция может получить типы своих аргументов, вызвав type
на каждый из них (и, конечно же, узнает тип, который он возвращает).
Если вы имеете в виду из-за пределов функции, нет: функцию можно вызывать с аргументами любых типов - некоторые из таких вызовов будут приводить к ошибкам, но нет способа узнать априори, какие они будут.
Параметры могут быть опционально оформлены в Python 3, и одним из возможных способов использования такого украшения является выражение чего-то типа типов (и/или других ограничений на них), но язык и стандартная библиотека не предлагают никаких указаний относительно того, как такое украшение может быть использовано. Вы могли бы также принять стандарт, в соответствии с которым такие ограничения выражаются структурированным способом в docstring функции, что имеет преимущество быть применимым к любой версии Python.
Легкий способ заключается в использовании bpython
Python обучения получает легкий & удовольствие снова!
alt text http://www.noiseforfree.com/bpython/img/bpython01.png
В 3.4.2 документации https://docs.python.org/3/library/inspect.html, есть упоминание о том, что вам точно нужно (а именно получение типов аргументов функции).
Вы сначала должны определить свою функцию, как это:
def f(a: int, b: float, c: dict, d: list, <and so on depending on number of parameters and their types>):
Затем вы можете использовать formatargspec(*getfullargspec(f))
, который возвращает хороший хэш, как это:
(a: int, b: float)
Этот вопрос с 2010 года ... задолго до того, как существовал 3.4.2. Я бы решил удалить этот ответ. – rnevius
- 1. Есть ли способ получить типы аргументов функций?
- 2. Как указать типы аргументов?
- 3. Objective C - Получить типы аргументов метода?
- 4. получить аргументы и типы класса аргументов
- 5. Groovy TimeDuration Типы аргументов
- 6. Типы аргументов функции функции
- 7. станд :: функциональные типы аргументов
- 8. Несовпадение в количестве/Типы аргументов
- 9. Как отличить типы аргументов (кортеж/список кортежей) в Python
- 10. Как получить типы аргументов ctor через отражение в Scala 2.10.1
- 11. Как получить типы аргументов указателя функции в классе вариационных шаблонов?
- 12. Псевдонимы аргументов аргументов в python
- 13. Перейти: ссылочные типы в качестве аргументов
- 14. Как разбирать разные типы аргументов?
- 15. Swift Дженерики: сдерживающими Типы аргументов
- 16. Expression.Condition: типы аргументов не соответствуют
- 17. Типы аргументов шаблона верхнего уровня
- 18. Alamofire жалуется на типы аргументов
- 19. Типы аргументов объекта Deduce function
- 20. Cassandra: Типы аргументов не совпадают
- 21. Как получить имена аргументов функций в Python
- 22. Типы аргументов Python не совпадают с сигнатурой C++
- 23. Можно ли объявлять типы аргументов в javascript?
- 24. Принимая различные типы аргументов в Java
- 25. , передающий различные типы аргументов в запрос jdbctemplate
- 26. Разбор аргументов командной строки в разные типы
- 27. как я могу получить типы аргументов от SEL
- 28. Получить типы аргументов из объекта Constructor (Java Reflection)
- 29. Python numba.jit типы
- 30. Макрос Scala: типы аргументов функции ссылки
Что случилось с 'help' текста? Что не так с чтением самого кода? –
Конечно, это неправильно. Вам действительно нравится читать исходный код, когда вы просто хотите вызвать метод. – leon