我声明了一个类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没有定义?
如何在地图中应用成员函数?
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)
| 归档时间: |
|
| 查看次数: |
1063 次 |
| 最近记录: |