2017-04-01 4 views
0

Schreiben Sie eine Klasse namens Employee, die die folgenden Daten zu einem Mitarbeiter in Attributen enthält: Name, ID-Nummer, Abteilung und Berufsbezeichnung.Employee-Klassen - Python

Nachdem Sie die Klasse geschrieben haben, schreiben Sie ein Programm, das die folgenden Daten zu halten, drei Mitarbeiter-Objekte erstellt:

Susan Meyers - 47899 - Buchhaltung - Vice President Mark Jones - 39119 - IT - Programmer Joy Rogers - 81774 - Fertigung - Ingenieur

^Das ist das Problem, auf dem ich feststecke. Ich glaube, ich habe den ersten Teil des Codes korrekt, aber ich verstehe nicht, was ich für den zweiten Teil des Programms tun soll, um Mitarbeiter-Objekte zu erstellen.

Hier ist mein Code so weit ...

emp.py Datei

#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 

und hier ist meine Hauptfunktion, wo der zweite Teil ...

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() 
gehen wird

Also mit diesem Code bekomme ich jetzt die richtige Antwort:

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.Mitarbeiter ('Susan Meyers', 47899, 'Buchhaltung', 'Vizepräsident')' – Wright

+0

Ich weiß, dass es keinen Code im zweiten Teil gibt. Das ist, weil ich nicht sicher war, wie ich weitermachen soll. Wright, schafft das ein Objekt für die Klasse? – Classicalclown

+0

Google ist dein Freund. Tippe etwas wie "Erstelle neue Instanz einer Klasse in Python" ... Du wirst dutzende Tutorials sehen. Zum Beispiel [das] (https://www.dotnetperls.com/class-python) –

Antwort

0

Werfen Sie einen Blick auf this

Sie haben Sie Python-Datei emp.py inpored, die die Klasse ‚Mitarbeiter‘ mit import emp Anweisung hat. Nun

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

Wird das Objekt und speichert seine Zeiger auf ang1 erstellen.

+0

Hmm, also würde ich dies für jeden Mitarbeiter und emp.Employee verwendet die importierte Datei und Klasse korrekt? Erstellen Sie also ein Employee-Objekt, um Daten zu speichern? – Classicalclown

+0

Ja! Du hast recht. –

+0

Okay cool cool! Ich lerne! – Classicalclown

0

Import emp.py

from emp import Employee 

Gehen Sie weiter und erstellen 3 Mitarbeiter Objekte:

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

Die emp.py Datei sein könnte:

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) 

Ein paar Hinweise:

  • id ist eine integrierte Funktion, die die "Identität" eines Objekts zurückgibt. Es ist am besten, das nicht als Attribut zu verwenden, es könnte andere Programmierer verwirren.
  • Die Attribute sollten keine doppelten Unterstriche haben, aka dunders.
  • In Python sind keine Setter und Getter erforderlich.
  • hinzufügen str Methode für gut formatierte Druck

Dann würde der zweite sein:

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') 

Instanz Attribute können eingestellt werden, wenn die Konstruktion. Dies spart viele Codezeilen.