簡體   English   中英

如何在 python class 中實現字符串?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM