Как я могу получить несколько наборов координат в качестве аргументов для функции? - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть функция pixel, которая отображает пиксель в определенной точке окна. Например, pixel(10, 10) построит пиксель в точке (10, 10).

В новой функции pixels я бы хотел, чтобы она выполнялась, набрав что-то вроде pixels((10, 10), (11, 11), ...), и она использовала бы функцию pixel необходимое количество раз для отображения пикселей в указанном списке. координаты.

Я искал способ сделать это в течение нескольких дней, любая помощь будет оценена.

1 Ответ

1 голос
/ 23 февраля 2020
def pixel(x, y):
    print(f"drawing pixel at ({x}, {y})")

def pixels(*args):
    for arg in args:
        assert isinstance(arg, tuple)
        pixel(*arg)

pixels((10, 10), (20, 20), (34, 66))

Вывод:

drawing pixel at (10, 10)
drawing pixel at (20, 20)
drawing pixel at (34, 66)

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

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