使用Python列表中的元素实例化课程



我刚刚在我的Python课程中开始OOP。我正在尝试编写一个小程序,该程序创建名为"员工"的课程,非常简单,只有名字和姓氏。我要做的是以下内容:我有一个函数询问名称和姓氏,并返回由名称和姓氏组成的元组列表。我不知道用户将放置多少个名称,所以我不知道该列表组成了多少个元组。我现在的问题是如何编写一个为每个元组创建"员工"类的函数。

这是程序:

class Employee(object):
    def __init__(self, name, surname):
        self.name = name
        self.surname = surname
        print 'Employee created!'
        print 'Welkom %s %s'%(name, surname)
def create_employee():
    x = []
    while True:
        y = raw_input('Name: '),raw_input('Surname: ')
        answer = raw_input('Do you want to add another employee? Yes or No ')
        if answer == 'Yes' or answer == 'yes':
            answer == True
        else:
        break 

我尝试了以下内容:y = Employee(raw_input('name '), raw_input('surname '))这返回了一个对象列表,但我不知道如何联系。它们在列表中,如果我调用列表,我只会获得一个带有对象位置的列表,但是我不知道如何在它们上调用函数。

我已经被困了两天了。任何帮助将不胜感激!

谢谢。

您正在将 namesurname读取为称为 y的元组中。我认为您想做的是从元组y创建一个Employee类的实例,例如:

employee = Employee(*y)

创建Employee的实例并将名称和姓氏传递给构造函数__init__()

因此您的create_employee()功能看起来像这样:

def create_employee():
    x = []
    while True:   
        y = raw_input('Name: '), raw_input('Surname: ')
        employee = Employee(*y) # Create an instance of Employee from input
        x.append(employee)      # Save object in a list for future use
        answer = raw_input('Do you want to add another employee? Yes or No ')
        if answer == 'Yes' or answer == 'yes':
            answer == True
        else:
            break
    return x   # Pass the list of objects back when user is finished

现在您需要使用创建的Employee对象列表。

if __name__ == "__main__":
    x = create_employee()
    for employee in x:
        print employee.name, employee.surname

输出是

Name: Joe
Surname: Bloggs
Employee created!
Welkom Joe Bloggs
Do you want to add another employee? Yes or No No
Joe Bloggs

相关内容

  • 没有找到相关文章

最新更新