【发布时间】:2016-05-05 08:57:20
【问题描述】:
我遇到了以下 Python 脚本:
x = x + 20
y = 300 - int(i)
draw_img.line((x,300) + (x,y), width=10, fill=(255,0,0,255))
我看不懂的部分是(x,300) + (x,y)。这里使用+是什么意思?
谢谢。
【问题讨论】:
-
连接元组
我遇到了以下 Python 脚本:
x = x + 20
y = 300 - int(i)
draw_img.line((x,300) + (x,y), width=10, fill=(255,0,0,255))
我看不懂的部分是(x,300) + (x,y)。这里使用+是什么意思?
谢谢。
【问题讨论】:
它将(x, 300) 元组与(x, y) 元组相加,得到(x, 300, x, y)。
【讨论】:
+ 与更熟悉的连接(“添加”)相同两个列表:[x] + [y],生成 [x, y]。这里感觉真的很尴尬,因为当绘制一条线时,您希望看起来像(x, y) 的东西是一个向量。添加两个向量会产生一个 2 元素分量和,而“看起来像添加”两个 Python 2 元组会产生一个 4 元组,这就是为什么这种用法如此令人困惑的原因。
(x,300)和(x,y)是所需线段的端点。但我同意这有点令人困惑,如果draw_img.line 接受一个元组的元组作为端点参数会更好。