gpt4 book ai didi

python - 元组可读性 : [0, 0] vs (0,0)

转载 作者:IT老高 更新时间:2023-10-28 20:36:46 27 4
gpt4 key购买 nike

我使用 Python 已经有一段时间了,我正在发现“pythonic”的编码方式。我在代码中使用了很多元组,其中大部分是极坐标或笛卡尔位置。

我发现自己在写这个:

window.set_pos([18,8])

而不是这个:

window.set_pos((18,8))

为了去掉我觉得难以阅读的双括号。

似乎python会自动进行从列表到元组的类型转换,因为我的代码可以正常工作。

但这是一种很好的编码方式吗?你有什么演示技​​巧可以用来编写可读的代码吗?

提前感谢您的肯定有启发性的回答。

最佳答案

我会谨慎地决定避免使用元组来支持无处不在的列表。你用过dis模块?当你创建一个列表和创建一个元组时,看看 Python 在字节码级别做什么:

>>> def f():
... x = [1,2,3,4,5,6,7]
... return x
...
>>> def g():
... x = (1,2,3,4,5,6,7)
... return x
...
>>> import dis
>>> dis.dis(f)
2 0 LOAD_CONST 1 (1)
3 LOAD_CONST 2 (2)
6 LOAD_CONST 3 (3)
9 LOAD_CONST 4 (4)
12 LOAD_CONST 5 (5)
15 LOAD_CONST 6 (6)
18 LOAD_CONST 7 (7)
21 BUILD_LIST 7
24 STORE_FAST 0 (x)

3 27 LOAD_FAST 0 (x)
30 RETURN_VALUE
>>>
>>>
>>> dis.dis(g)
2 0 LOAD_CONST 8 ((1, 2, 3, 4, 5, 6, 7))
3 STORE_FAST 0 (x)

3 6 LOAD_FAST 0 (x)
9 RETURN_VALUE

虽然它在 GUI 应用程序中可能永远不会成为问题(就像您的示例那样),但出于性能原因,您可能希望在代码中的任何地方都小心。

关于python - 元组可读性 : [0, 0] vs (0,0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11261662/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com