如何在python类中实现字符串



我正在处理一个名为";员工阶级";大部分都是通过它,但它并没有打印出我想要的东西。这是我的程序:

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()

这是我的类所在的文件:

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

我知道我需要实现一个字符串,但我被卡住了。

您需要在员工类中定义__str__方法。这告诉编译器如何将类输出为字符串而不是对象哈希。

class Employee:
def __str__(self):
return f"{self.__empName}, {self.__idNumber}, {self.__department}, {self.__title}"

类中使用的双下划线通常表示它是一个私有变量/属性。示例:

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

如果你只需删除这些下划线,你就可以这样调用字符串:

print(f"Employee 1:{emplo1.empName}n")

如果你想在类之外调用这些属性,那么它们是公共的,而不是私有的,所以双下划线是不必要的。

最新更新