attrgetter
时间: 2024-10-25 20:04:22 浏览: 14
attrgetter是Python内置的一种工具,它是一个函数工厂,用于创建属性访问器(property-like)。当你需要从一个对象动态地获取一个或多个属性值时,可以使用attrgetter。它的基本用法是在字符串形式上指定属性名,然后传入这个表达式给attrgetter(),返回的是一个函数,可以直接调用这个函数来获取对象的属性。
例如:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("Alice", 25)
getter = attrgetter('name', 'age')
values = getter(person) # 输出:('Alice', 25)
```
在这个例子中,`getter`函数实际上是`attrgetter('name')`和`attrgetter('age')`的组合,当我们调用`getter(person)`时,就等同于`person.name`和`person.age`的值。
相关问题
operator 模块的 attrgetter 方法
operator 模块是 Python 标准库中的一个模块,其中包含了一系列对 Python 内置运算符的函数实现,这些函数可以用于函数式编程中的高阶函数。其中的 attrgetter 方法用于获取对象的属性值,返回一个可调用对象,可以用于排序和比较等操作。
attrgetter 的用法是 `attrgetter(attr)`,其中 attr 参数表示要获取的属性名。如果要获取多个属性的值,可以传入多个参数,例如 `attrgetter('name', 'age')`。返回的对象可以像函数一样调用,传入参数为一个对象,返回这个对象的属性值。例如,如果有一个对象 obj,可以这样调用 attrgetter:`attrgetter('name')(obj)`,这将返回对象 obj 的 name 属性的值。
cmpfun_new = operator.attrgetter('data_time') # 参数为排序依据的属性,根据上传时间进行排序 data_all_new.sort(key=cmpfun_new, reverse=True) # 根据配置进行排序
cmpfun_new 是一个函数,它使用 operator 模块的 attrgetter 方法来获取 data_time 属性的值,即按照上传时间进行排序。在 sort 方法中,key 参数表示用于排序的函数,即 cmpfun_new。reverse 参数表示是否降序排列,这里设置为 True 表示降序排列。
阅读全文