#python-2.7 #python-imaging-library
#python-2.7 #python-imaging-library
Вопрос:
Я не уверен, как правильно задать этот вопрос, потому что я пытаюсь понять то, чего я еще не понимаю, и поэтому я не знаю правильной терминологии для использования, но я наткнулся на этот фрагмент кода в руководстве YouTube по PIL здесь.
Вопрос
Не мог бы кто-нибудь, пожалуйста, объяснить, что означает последняя строка? Я предполагаю, что это стиль объявления переменных в Python, с которым я еще не знаком, и я не знаю, как он называется, поэтому я не могу его посмотреть.
import Image
filename = "py.png"
image = Image.open(filename)
size = width, height = image.size
Что я пробовал
Я пытался сломать логику последней строки, но для меня это не имеет смысла:
# assign value of width to size variable?
size = width
# assign value of image.size to height variable?
height = image.size
Проблемы, которые я вижу с этим, заключаются в:
-
width
не определено. -
image.size
представляет размеры изображений, т.Е.(512,512)
так что, похоже, это не было бы подходящим значением дляheight
.
Я уверен, что это очень просто, я просто пока не понимаю.
Ответ №1:
Решение
Я думаю, что я понял это, выполнив следующее:
>>> size = width, height = 320, 240;
>>> size
(320, 240)
>>> width
320
>>> height
240
Итак, по сути, код в исходном сообщении гласит:
>>> size = width, height = 512, 512;
>>> size
(512, 512)
>>> width
512
>>> height
512
Что означает:
«Переменная size
— это кортеж, состоящий из двух значений ( width
и height
), а их значениями являются 512
и 512
соответственно».
Механика этого еще не совсем усвоена, но на данный момент достаточно хороша.
Комментарии:
1. Вам нужно прочитать это в обратном порядке…
,
используется для создания кортежей… — таким образом,512, 512
создается кортеж из двух элементов, которые распаковываются вwidth, height
, затемsize
присваивается кортежуwidth, height
… Короче говоря, width и height содержат отдельные значения, но при использовании распаковки они также рассматриваются как кортеж для присвоения слева…