Python повторяемая функция logi c - как передать аргумент, который не является строкой - PullRequest
0 голосов
/ 05 августа 2020
def bulk_save_coordinates():
    index = 0
    coordinates_list = []
    for element in range(count_indexes()):
        coordinates = Coordinates(latitude=all_location_coordinates[index], location_id=index + 1, longitude=all_location_coordinates[index])
        coordinates_list.append(coordinates)
        index += 1

    session.add_all(coordinates_list)
    session.commit()

def bulk_save_timezones():
    index = 0
    timezones_list = []
    for element in range(count_indexes()):
        timezones = Timezone(offset=all_location_coordinates[index], location_id=index + 1, description=all_location_coordinates[index])
        timezones_list.append(timezones)
        index += 1

    session.add_all(timezones_list)
    session.commit()

Это моя функция. Мне нужно часто использовать bulk_save_something.

Я вижу, что logi c повторяется там, это тот же образец. Я хотел бы добавить в функцию args что-то, что не будет строкой.

Может быть, у кого-то есть идея, как это изменить?

1 Ответ

0 голосов
/ 05 августа 2020

Вы можете создать более общую c функцию, отправив изменяющийся параметр (здесь класс Coordinates / Timezone?)

def bulk_save(obj_class):
    index = 0
    obj_list = []
    for element in range(count_indexes()):
        objs = obj_class(offset=all_location_coordinates[index], location_id=index + 1, description=all_location_coordinates[index])
        obj_list.append(objs)
        index += 1

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