我对编码很陌生,但我试图弄清楚为什么我的打印功能没有产生我所期望的结果。知道吗?



我创建了一个名为Patient的类,它具有用于患者信息的属性。我应该为每个属性使用一个访问器和mutator方法。然后,我创建了另一个文件来访问该类并插入要打印的患者信息。每次我打印出来,我都没有得到我期望的结果,但我得到了Assignment4Q1PatientClass2nd。患者对象在0x000002429E038A00>;

这是我的第一个文件(文件名是Assignment4Q1PatientClass2nd):

class Patient:
    
    def __init__(self, fname, mname, lname, address, city, state, zipcode, phone, ename, ephone):
        self._fname = fname       #first name
        self._mname = mname       #middle name
        self._lname = lname       #last name
        self._address = address   #address
        self._city = city         #city for address
        self._state = state       #state for address
        self._zipcode = zipcode   #zipcode for address
        self._phone = phone       #phone number
        self._ename = ename       #emergency name
        self._ephone = ephone     #emergency phone
        
    #add patient information    
    def addFirstName(self, firstname):
        self._fname = self._fname + firstname 
    def addMiddleName(self, middlename):
        self._mname = self._mname + middlename 
    def addLastName(self, lastname):
        self._lname = self._lname + lastname
    def addAddress(self, locaddress):
        self._address = self._address + locaddress
    def addCity(self, cityname):
        self._city = self._city + cityname 
    def addState(self, statename):
        self._state = self._state + statename
    def addZipcode(self, zipcodenum):
        self._zipcode = self._zipcode + zipcodenum
    def addPhone(self, phonenum):
        self._phone = self._phone + phonenum
    def addEName(self, emergencyname):
        self._ename = self._ename + emergencyname
    def addEPhone(self, emergencyphone):
        self._ephone = self._ephone + emergencyphone
        
    #get/return all information of the Patient
    def getPatientFirstName(self):
        return "First Name:" + self._fname
    def getPatientMiddleName(self):
        return "Middle Name:" + self._mname
    def getPatientLastName(self):
        return "Last Name:" + self._lname 
    def getPatientAddress(self):
        return "Address:" + self._address  
    def getPatientCity(self):
        return "City:" + self._city 
    def getPatientState(self):
        return "State:" + self._state
    def getPatientZipcode(self):
        return "ZIP:" + self._zipcode   
    def getPatientPhone(self):
        return "Phone:" + self._phone 
    def getPatientEName(self, emergencyname):
        return "Emergency Contact:" + self._ename 
    def getPatientEPhone(self, emergencyphone):
        return "Emergency Phone:" + self._ephone

第二个文件上的是:

from Assignment4Q1PatientClass2nd import Patient
pat = Patient("James", "Edward", "Jones", "345 Main Street", "Billings", "Montanna", 59000, "406-555-1212", "Jenny Jones", "406-555-1213")
    
print(pat)

您对打印语句的期望是什么?这个班级实际上并不"知道"打印什么。你必须提供一种将该类表示为字符串的方法,以便我们可以打印该字符串。

在实践中,我们通过添加一个名为" __rep__ "的函数来实现这一点,repr这类的展示。Python自动将其识别为一个特殊的对象,就像"__init__"一样。

给你一个小例子:

class Patient:
    def __init__(self, name):
        self._name = name
    def getPatientName(self):
        return self._name
    def __repr__(self):
        return "Hey! My name is " + self.getPatientName()
pat = Patient("Dikson")
print(pat)
# Hey! My name is Dikson

希望你明白了:)

最新更新