我正在学习python。我喜欢使用help()或interinspect.getargspec来获取shell中函数的信息。但无论如何我可以得到函数的参数/返回类型。
答案 0 :(得分:4)
如果你的意思是在函数的某个调用期间,函数本身可以通过在每个函数上调用type
来获取其参数的类型(并且肯定会知道它返回的类型)。
如果你的意思是来自函数外部,那么:函数可以用任何类型的参数调用 - 一些这样的调用会产生错误,但是没有办法知道它们将是先验的。
参数可以选择在Python 3中进行修饰,这种装饰的一种可能用途是表达参数的类型(和/或其他约束),但语言和标准库没有提供如何指导装饰可能会被使用。您也可以采用一种标准,即在函数的docstring中以结构化方式表示这些约束,这样可以适用于任何版本的Python。
答案 1 :(得分:2)
在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)
答案 2 :(得分:1)
有一个名为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不强制它在你身上
答案 3 :(得分:0)
简单方法是使用 bpython
Python学习变得简单&amp;又好玩!
alt text http://www.noiseforfree.com/bpython/img/bpython01.png