Pycharm有一个很好的功能,它可以读取函数docstring中的类型声明,并使用正确的用法检查函数。
是否有一个很好的资源,它列出了所有常用类型的规则和名称?
注意:
我在下面提供了一个答案,其中包含了我能够弄清楚的一切。但它远非全面。
答案 0 :(得分:8)
以下是我常用的类型列表:
ml2.put("strings", Arrays.asList("evil","string"));
示例:
string: str
unicode: unicode
integer: int
float: float
general dictionary: dict
general list: list
general tuple: tuple
None: None
not defined: Any
your own object: MySpecialClass
specific tuple: (str, int)
specific list: list of str
specific dict: dict[str, int]
multiple options: str or list
来自import requests
def example_function(list_var, str_var, num_var, request_var):
"""
:param list_var:
:type list_var: list of str
:param str_var:
:type str_var: str or unicode
:param num_var:
:type num_var: int
:param request_var:
:type request_var: requests.models.Request
:return:
:rtype: (list of dict) or None
"""
return [{}]
example_function(
['a', 'b'],
u'unicode accepted because stated',
1.234,
requests.Request('GET', 'http://going/somewhere')
)
然后,当按下 Ctrl 并将鼠标悬停在函数调用上时,会获得一个类型帮助文本。这非常有用,因为PEP 8命名约定在设计上是类型模糊的。
在这种情况下,帮助文本将是:
__init__.py
警告Inferred type: (list_var: List[str], str_var: Union[str, unicode], num_var: int, request_var: Request) -> Optional[List[dict]]
参数:
num_var
答案 1 :(得分:0)
GitHub上有repo个python骨架。 README包含可能的类型声明。
答案 2 :(得分:0)
以下摘自README-obsolete.md 类型部分mentioned user2235698}:
Foo # Class Foo visible in the current scope
x.y.Bar # Class Bar from x.y module
Foo | Bar # Foo or Bar
(Foo, Bar) # Tuple of Foo and Bar
list[Foo] # List of Foo elements
dict[Foo, Bar] # Dict from Foo to Bar
T # Generic type (T-Z are reserved for generics)
T <= Foo # Generic type with upper bound Foo
Foo[T] # Foo parameterized with T
(Foo, Bar) -> Baz # Function of Foo and Bar that returns Baz
unknown # Unknown type
None # type(None)
string # Py2: str | unicode, Py3: str
bytestring # Py2: str | unicode, Py3: bytes
bytes # Py2: str, Py3: bytes
unicode # Py2: unicode, Py3: str
顺便说一句:在PyCharm documentation中还有提及 Type Hinting 的部分。