2017-04-01 26 views
0

编写一个名为Employee的类,其中包含有关属性中的员工的以下数据:名称,ID号,部门和职位。员工类 - Python

一旦你写的类,编写创建三个Employee对象持有以下数据的程序:

苏珊·迈耶斯 - 47899 - 会计 - 副总裁 马克·琼斯 - 39119 - IT - 程序员 喜悦罗杰斯 - 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 
+2

'susan = emp.Employee('Susan Meyers',47899,'Accounting','Vice President')' – Wright

+0

我知道第二部分没有代码。那是因为我不确定如何继续。赖特,是为班级创造一个对象吗? – Classicalclown

+0

谷歌是你的朋友。键入类似于“在python中创建一个类的新实例”......您将看到许多教程。例如[this](https://www.dotnetperls.com/class-python) –

回答

0

看看this

你inpored你有import emp陈述类“雇员”蟒蛇文件emp.py。 现在,

emp1=emp.Employee('kee',1,'CSE','SE') 
print emp1 

将创建该对象并将其指针存储到emp1。

+0

嗯,所以我会为每个员工和员工做这个工作。员工使用导入的文件和班级是否正确?那么创建一个Employee对象来保存数据呢? – Classicalclown

+0

是啊!你是对的。 –

+0

好酷酷!我在学! – Classicalclown

0

进口emp.py

from emp import Employee 

继续创建3个Employee对象:

def main(): 
     emp1 = Employee("name", id, department, title) 
     emp2 = Employee("name", id, department, title) 
     emp3 = Employee("name", id, department, title) 
0

的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是一个内置函数,它返回对象的“身份”。最好不要将它用作属性,它可能会混淆其他程序员。
  • 属性不应该有双下划线,又名dunders。
  • 在Python中,不需要setter和getters。
  • 添加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') 

实例属性可以构建时被设置。这节省了许多代码行。