Python: вызвать функцию с n аргументами - PullRequest
1 голос
/ 04 октября 2019

Я использую функцию из библиотеки drawSVG: draw.Lines(). Эта функция рисует линии между указанными точками. Например, draw.Lines(x0, y0, x1, y1) проведите линию между точкой (x0, y0) и (x1, y1).

Моя проблема в том, что я хотел бы нарисовать n линий. Для этого мне нужно вызвать функцию с n аргументами (draw.Lines(x0, y1, ... xn, yn)). Каждый аргумент должен быть числом. Я пытался использовать списки, и это не сработало.

Я не нашел способа сделать это правильно. Прямо сейчас я вызываю функцию с нужным количеством аргументов, но мне это не нравится.

Например, если я хочу напечатать квадрат

svg.append(draw.Lines(10,10,100,10,100,100,10,100))

1 Ответ

2 голосов
/ 04 октября 2019

Вы можете использовать развертывание аргументов, чтобы передать список в функцию, которая ожидает несколько позиционных аргументов.

Ваш пример может быть переписан как:

points = [10,10,100,10,100,100,10,100]
svg.append(draw.Lines(*points))

Так что, если у вас есть конечные координаты для ваших n строк в списке, вы можете передать это (с помощью *) к функции drawLines.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...