Пользовательский список объектов - PullRequest
0 голосов
/ 07 августа 2020

Я пытаюсь создать объект своего класса и добавить его в список. Я использую настраиваемый класс пациента, который имеет некоторые свойства и методы для установки значений свойств. Итак, в основном я хочу сохранить список пациентов, где каждый индекс имеет запись каждого пациента. При отображении значений из списка он ничего не отображает, только какое-то значение идентификатора, например`124. Ниже мой код для класса пациентов:

 class Patients:

    def __init__(self):
        self.patient_id = ""
        self.patient_name = ""
        self.patient_age = ""
        self.patient_gender = ""
        self.patient_disease = ""

  def set_patient_values(self):
    //code to set values which user inputs like 
      self.patient_id=int(input("Please enter patient ID : "))


  //
 //appointment.py file :
    
from Patients import Patients

def AddPatient():
    list2=[]
    p1 = Patients()
    p1.set_patient_values()
    list2.append(p1)
    print(p1.patient_id)
    return list2

if __name__ == "__main__":
    list1 = []
    print("Welcome to Hospital System \n")
    Flag=True
    while Flag:
        print("Press 1. To Create Patient Record ")
        print("Press 2. To View Patient Records ")
        x=int(input("Please input from Menu :"))
        if x == 1:
            list1 = AddPatient()

        elif x==2:
            for vertex in list1:
                print(vertex.patient_id)
        else:
            break

Ответы [ 2 ]

0 голосов
/ 07 августа 2020
class Patients:
    
    def __init__(self):
        self.patient_id = ""
        self.patient_name = ""
        self.patient_age = ""
        self.patient_gender = ""
        self.patient_disease = ""

    def set_patient_values(self):
        self.patient_id = int(input("Please enter patient ID : "))
        self.patient_name = str(input("Enter patient's Name:"))
        self.patient_age = int(input("Enter patient's age:"))
        self.patient_gender = str(input("Enter patient's gender:"))
        self.patient_disease = str(input("Enter patient's disease:"))

# to test the code on one individual patient : 
# tempPatient = Patients()
# tempPatient.set_patient_values()   
# patientDict[tempPatient.patient_id] = tempPatient.__dict__              

if __name__ == "__main__":
    
    patientDict = {}
    detailDict = {}
    print("Welcome to Hospital System \n")
    Flag=True
    while Flag:
        print("Press 1. To Create Patient Record ")
        print("Press 2. To View Patient Records ")
        x = int(input("Please input from Menu :"))
        if x == 1:
            tempPatient = Patients()
            tempPatient.set_patient_values()
            patientDict[tempPatient.patient_id] = tempPatient.__dict__            
                      
        elif x == 2:
            
            for vertex in patientDict:
                print(patientDict[vertex])
        else:
            break

Я внес некоторые изменения, которые могут вам помочь: D

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

Надеюсь, этот ответ был полезен: D

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

Попробуйте прочитать и понять этот код, я полагаю, это то, что вам нужно.

class Patients:
    def __init__(self):
        self.patient_id = ""
        self.patient_name = ""
        self.patient_age = ""
        self.patient_gender = ""
        self.patient_disease = ""

    def set_patient_values(self):
        self.patient_id = int(input("Please enter patient ID : "))


def AddPatient():
    pat = Patients()
    pat.set_patient_values()
    return pat


if __name__ == "__main__":
    list_patient = []
    print("Welcome to Hospital System \n")
    while True:
        x = int(input("Press 1. To Create Patient Record\nPress 2. To View Patient Records\n"))
        if x == 1:
            list_patient.append(AddPatient())
        elif x == 2 and list_patient:
            for pat in list_patient:
                print(f'patiend_id = {pat.patient_id} for object {pat}')
        else:
            break
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...