2017-04-01 66 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') 

實例屬性可以構建時被設置。這節省了許多代碼行。