员工类 \- Python

新手上路,请多包涵

编写一个名为 Employee 的类,该类在属性中保存有关员工的以下数据:姓名、身份证号、部门和职务。

编写完类后,编写一个程序来创建三个 Employee 对象来保存以下数据:

Susan Meyers - 47899 - 会计 - 副总裁 Mark Jones - 39119 - IT - 程序员 Joy Rogers - 81774 - 制造 - 工程师

^ 这是我遇到的问题。我相信我的代码的第一部分是正确的,但我不明白如何为程序的第二部分创建 Employee 对象。

到目前为止,这是我的代码……

emp.py文件

#create a class named Employee
class Employee:

    #initialize the attributes
    def __init__(self, name, id, department, title):
        self.__name = name
        self.__id = id
        self.__department = department
        self.__title = title

    #set the attributes
    def set_name(self, name):
        self.__name = name

    def set_id(self, id):
        self.__id = id

    def set_department(self, department):
        self.__department = department

    def set_title(self, title):
        self.__title = title

    #return the attributes
    def get_name(self):
        return self.__name

    def get_id(self):
        return self.__id

    def get_department(self):
        return self.__department

    def get_title(self):
        return self.__title

    #return the objects state as a string

    def __str__(self):
        return 'Name: ' + self.__name + \
               '\nID number: ' + self.__id + \
               '\nDepartment: ' + self.__department + \
               '\nTitle: ' + self.__title

这是我的主要功能,第二部分将要进行……

  import emp

def main():
    #Create three employee objects
    emp1 = emp.Employee('name', 'id', 'department', 'title')
    emp2 = emp.Employee('name', 'id', 'department', 'title')
    emp3 = emp.Employee('name', 'id', 'department', 'title')

    #create three Employee objects for each attribute
    emp1.set_name('Susan Meyers')
    emp1.set_id('47899')
    emp1.set_department('Accounting')
    emp1.set_title('Vice President')

    emp2.set_name('Mark Jones')
    emp2.set_id('39119')
    emp2.set_department('IT')
    emp2.set_title('Programmer')

    emp3.set_name('Joy Rogersr')
    emp3.set_id('81774')
    emp3.set_department('Manufacturing')
    emp3.set_title('Engineer')

    print()
    print(emp1)
    print()
    print(emp2)
    print()
    print(emp3)

main()

所以有了这段代码,我现在得到了正确的答案:

 Employee 1:
Name: Susan Meyers
ID number: 47899
Department: Accounting
Title: Vice President

Employee 2:
Name: Mark Jones
ID number: 39119
Department: IT
Title: Programmer

Employee 3:
Name: Joy Rogers
ID number: 81774
Title: Programmer

Process finished with exit code 0

原文由 Classicalclown 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 653
1 个回答

emp.py 文件可以是:

     class Employee:

    def __init__(self, name, employee_id, department, title):
        self.name = name
        self.employee_id = employee_id
        self.department = department
        self.title = title

    def __str__(self):
        return '{} , id={}, is in {} and is a {}.'.format(self.name, self.employee_id, self.department, self.title)

一些注意事项:

  • id 是一个内置函数,它返回一个对象的“身份”。最好不要将其用作属性,否则可能会使其他程序员感到困惑。
  • 属性不应该有双下划线,也就是双下划线。
  • 在 Python 中,不需要 setter 和 getter。
  • 为格式化打印添加一个 str 方法

然后第二个是:

 from emp import Employee

def main():

    # Create three employee objects
    emp1 = Employee(name='Susan Meyers', employee_id='47899', department='Accounting', title='Vice President')
    emp2 = Employee(name='Mark Jones', employee_id='39119', department='IT', title='Programmer')
    emp3 = Employee(name='Joy Rogersr', employee_id='81774', department='Manufacturing', title='Engineer')

    print(emp1, sep='/n/n')
    print(emp2, sep='/n/n')
    print(emp3, sep='/n/n')

实例属性可以在构造时设置。这样可以节省很多行代码。

原文由 Brian Spiering 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题