Извлечение значений из кортежа внутри объекта - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть следующий код, который не работает:

def call_row(body_part):
    row = self.__call__()[body_part].loc[str(row_index)].tolist()
    return row[0], row[1]

vector_centre = Vector2D(x, y = call_row(body_part_centre))

Я знаю, что могу решить проблему, изменив ее на что-то вроде этого:

def call_row(body_part):
    row = self.__call__()[body_part].loc[str(row_index)].tolist()
    return row[0], row[1]

x, y = call_row(body_part_centre)
vector_centre = Vector2D(x, y)

Да, Vector2Dпользовательский класс, определенный мной.

Я не считаю это решение таким элегантным.Это самый стиль "дзен питона", какой он есть, или мы можем сделать это лучше?Я хочу следовать PEP8.

Наиболее явной версией моего вопроса было бы: есть ли способ извлечь значения из кортежа внутри объекта, не жертвуя элегантностью?

1 Ответ

0 голосов
/ 18 сентября 2018

Вместо этого вы можете использовать оператор распаковки:

vector_centre = Vector2D(*call_row(body_part_centre))
...