I'm working on a problem called "Employee Class" and mostly thru it but it's not printing what I want. This is my program:
from EmployeeDefinition import *
def main():
emplo1 = Employee('Susan Meyers', '47899',
'Accounting', 'Vice President')
emplo2 = Employee('Mark Jones', '39119',
'IT', 'Programmer')
emplo3 = Employee('Joy Rogers', '81774',
'Manufacturing', 'Engineer')
print(f"Employee 1:{emplo1}\n")
print(f"Employee 2:{emplo2}\n")
print(f"Employee 3:{emplo3}\n")
if __name__ == '__main__':
main()
and this is the file with my class in it:
class Employee:
__empName = "-na-"
__idNumber = '0'
__department = "-na-"
__title = "-na-"
def __init__(self, inp_empName, inp_idNumber, inp_dept, inp_title):
self.__empName = inp_empName
self.__idNumber = inp_idNumber
self.__department = inp_dept
self.__title = inp_title
def setEmpName(self, inp_empName):
self.__empName = inp_empName
def setIdNumber(self, inp_idNumber):
self.__idNumber = inp_idNumber
def setDepartment(self, inp_dept):
self.__department = inp_dept
def setTitle(self, inp_title):
self.__title = inp_title
def getEmpName(self):
return self.__empName
def getIdNumber(self):
return self.__idNumber
def getDepartment(self):
return self.__department
def getTitle(self):
return self.__title
I know I need to implement a string but I'm stuck.
You need to define the __str__
method in your employee class. This tells the compiler how to output your class as a string instead of the object hash.
class Employee:
def __str__(self):
return f"{self.__empName}, {self.__idNumber}, {self.__department}, {self.__title}"
The double underscore you're using in your class usually denotes that it's a private variable/attribute. Example:
def __init__(self, inp_empName, inp_idNumber, inp_dept, inp_title):
self.empName = inp_empName
self.idNumber = inp_idNumber
self.department = inp_dept
self.title = inp_title
If you simply remove those underscores, you can call the string like this:
print(f"Employee 1:{emplo1.empName}\n")
If you want to call those attributes outside of the class, then they're public versus private, so the double underscore is unnecessary.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.