[英]How to implement string in python class?
我正在解決一個名為“員工類”的問題,主要是通過它,但它並沒有打印出我想要的東西。 這是我的程序:
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 的文件:
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
我知道我需要實現一個字符串,但我被卡住了。
您需要在您的員工 class 中定義__str__
方法。 這告訴編譯器如何將 output 您的 class 作為字符串而不是 object Z0800FC577294C34E0B28AD283
class Employee:
def __str__(self):
return f"{self.__empName}, {self.__idNumber}, {self.__department}, {self.__title}"
您在 class 中使用的雙下划線通常表示它是私有變量/屬性。 例子:
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")
如果您想在 class 之外調用這些屬性,那么它們是公共的還是私有的,因此不需要雙下划線。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.