我应该使用多个变量还是一本字典

mer*_*ote 2 python dictionary

我是 Python 新手,看到很多源代码使用单独的变量来表示 x 和 y 坐标或最小值和最大值。

前任。

COORD_X = 45  
COORD_Y = 65  
SIZE_MIN = 1  
SIZE_MAX = 10  
Run Code Online (Sandbox Code Playgroud)

我想知道为什么人们不使用字典来代替?如果我应该跟随他们的领导或做我觉得更好的事情?

前任。

COORDS = {'x': 45, 'y': 65}  
SIZE = {'min': 1, 'max': 10}  
Run Code Online (Sandbox Code Playgroud)

这是性能问题还是我错过了什么?字典似乎是更好的选择,尤其是当你有很多这样的变量集时。它将您的变量减半,您只需要将一个变量传递给函数而不是两个。

Mat*_*vor 5

在许多情况下,这归结为个人风格偏好。但是,请注意,您正在创建更多对象来保存对象,这会消耗更多内存并影响创建的性能,并且查找速度稍慢,因此会有实例(大量对象,长时间运行的嵌套循环等)其中仅具有多个绑定将是有益的。

对于您的示例,我可能会使用namedtuple. 那里的例子几乎就是你的COORDS实例:

 >>> Point = namedtuple('Point', ['x', 'y'], verbose=True)
 >>> p = Point(11, y=22)
 >>> p.x + p.y
 33
Run Code Online (Sandbox Code Playgroud)