Python - 在地图中应用成员函数

J.C*_*Joe 5 python dictionary

我声明了一个类Employee和一个由它组成的列表:

class Employee():
    def __init__(self, _name):
        self.name = _name
    def get_name(self):
        return self.name

Tom   = Employee("Tom")
Karl  = Employee("Karl")
John  = Employee("John")

employee_list = [Tom, Karl, John]
Run Code Online (Sandbox Code Playgroud)

现在我想通过get_name在地图中应用来获得他们的名字列表:

name_list = map(get_name, employee_list)


Traceback (most recent call last): File "ask.py", line 13, in <module> 
    name_list = map(get_name, employee_list) 
NameError: name 'get_name' is not defined
Run Code Online (Sandbox Code Playgroud)

怎么可能get_name没有定义?

如何在地图中应用成员函数?

Rah*_*ahn 3

map(get_name, employee_list)在你的代码中相当于

[get_name(employee) for employee in employee_list]

不是[employee.get_name() for employee in employee_list]

get_name您应该在类之外声明一个方法Employee

def get_name(employee):
    return employee.name
Run Code Online (Sandbox Code Playgroud)

或者更简单的方法Lambda

name_list = map(lambda employee: employee.name, employee_list)

  • 在“[employee.get_name()] for employee_list]”中存在拼写错误:get_name() 之后的“]” (2认同)