当项目超过一定大小时,我真的很喜欢在 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
所以,除了我饿了之外,这个例子说明了如果用错误类型的对象列表调用,代码会中断。因此,记录不仅需要一份清单,而且需要一份食物清单的重要性。
相关问题 我如何告诉 PyCharm 一个参数应该是什么类型? 请注意,我正在寻找比上述答案更具体的答案。