【发布时间】:2013-07-23 08:30:36
【问题描述】:
我真的很喜欢在 Python 中使用文档字符串来在项目超出一定大小时指定类型参数。
我无法找到用于指定参数是特定对象列表的标准,例如在 Haskell 类型中,我会使用 [String] 或 [A]。
当前标准(PyCharm 编辑器可识别):
def stringify(listOfObjects):
"""
:type listOfObjects: list
"""
return ", ".join(map(str, listOfObjects))
我更喜欢什么:
选项 1
def stringify(listOfObjects):
"""
:type listOfObjects: list<Object>
"""
return ", ".join(map(str, listOfObjects))
选项 2
def stringify(listOfObjects):
"""
:type listOfObjects: [Object]
"""
return ", ".join(map(str, listOfObjects))
我想这不是一个很好的例子 - 更相关的用例是列表中的对象必须是特定类型的用例。
更好的例子
class Food(Object):
def __init__(self, calories):
self.calories = calories
class Apple(Food):
def __init__(self):
super(self, 200)
class Person(Object):
energy = 0
def eat(foods):
"""
:type foods: [Food] # is NOT recognised by editor
"""
for food in foods:
energy += food.calories
所以,除了我越来越饿之外,这个例子说明如果用错误类型的对象列表调用,代码会中断。因此,记录的重要性不仅在于它需要一份清单,而且还需要一份食物清单。
相关问题 How can I tell PyCharm what type a parameter is expected to be? 请注意,我正在寻找比上述更具体的答案。
【问题讨论】:
-
你检查过python网站上的PEP吗?
-
我没有找到这个,但我可能错过了
-
stackoverflow.com/questions/24853923/… 的可能重复项(我在那里了解到 Python 3.5 的
typing模块)。