常见文档字符串列表:pycharm的类型

时间:2016-10-20 08:50:16

标签: python types pycharm

Pycharm有一个很好的功能,它可以读取函数docstring中的类型声明,并使用正确的用法检查函数。

是否有一个很好的资源,它列出了所有常用类型的规则和名称?

注意:
我在下面提供了一个答案,其中包含了我能够弄清楚的一切。但它远非全面。

3 个答案:

答案 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') )

的以下模块和类找到了正确的Request格式

然后,当按下 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 的部分。