我喜欢用 Python 做一些愚蠢的事情,比如解决编程难题、编写小脚本等。每次在某个时候我都会面临一个两难选择,是我应该创建一个新类来表示我的数据,还是只使用快速和dirty 并使用列表或元组中的所有值。由于极度懒惰和个人不喜欢 self
关键字,我通常选择第二个选项。
我理解从长远来看,用户定义的数据类型更好,因为 path.min_cost
和 point.x, point.y
比 更具表现力路径 [2]
和 point[0], point[1]
。但是当我只需要从一个函数返回多个东西时,我觉得工作量太大了。
所以我的问题是,选择何时创建用户定义的数据类型以及何时使用列表或元组的最佳经验法则是什么?或者也许有一种我不知道的简洁的 pythonic 方式?
谢谢。
最佳答案
你知道collections.namedtuple
吗? ? ( since 2.6 )
def getLocation(stuff):
return collections.namedtuple('Point', 'x, y')(x, y)
或者,更有效地,
Point = collections.namedtuple('Point', 'x, y')
def getLocation(stuff):
return Point(x, y)
namedtuple
可以通过索引 (point[0]
) 访问并解包 (x, y = point
) 与 tuple
,因此它提供了几乎无痛的升级路径。
关于python - 如何决定何时引入新类型而不是使用列表或元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11609027/