Можно ли создавать объекты с именами по значениям в списке? - PullRequest
1 голос
/ 21 марта 2020

У меня есть список имен файлов, A1 и A2.

Метод load создает временный список данных, хранящихся в файле CSV.

Можно ли создать экземпляр класса на основе переданной строки (имени файла)?

patients_list = ["A1", "A2"]

def load_patient(patients_list):

    patient_data = []

    for i in range(len(patients_list)):
        with open(patients_list[i]+".csv", "rt") as patient_file:        
            patient_file_reader = csv.reader(patient_file, delimiter=',')
            for row in patient_file_reader:
                patient_data.append(row)           

            patients_list[i] = patientClass(patient_data)  #can the string value be converted to an obj?

Моя цель - создать два объекта с именами A1 и A2 (каждый из которых содержит данные csv).

Возможно ли это? Я искал inte rnet для решения, но потерпел неудачу.

1 Ответ

2 голосов
/ 21 марта 2020

Да, это возможно некоторыми хакерами, такими как добавление записей в globals(), и нет, вы этого не хотите.

Дело в том, что вы даже не могли предложить возможный синтаксис, потому что ничего не легко сюда. Распространенный и надежный способ именования объектов Dynami c заключается в использовании словаря:

patient_obj = {}
...
for i in range(...):
    ...
    patient_obj[patient_list[i]] = patientClass(patient_data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...