python 对象属性作为参数_如何将对象属性作为函数参数传递给lambda函数?
这是另一个使用^{}的版本。我认为在这里给Employee类a.sortclassmethod是有意义的。我从andrejkesely“借用”了__repr__方法和测试数据。;)from operator import attrgetter
class Employee:
allEmployees = []
def __init__(self, name, age):
self.name = name
self.age = age
Employee.allEmployees.append(self)
def __repr__(self):
return f'Employee({self.name}, {self.age})'
@classmethod
def sort(cls, attr):
return sorted(cls.allEmployees, key=attrgetter(attr))
Employee('John', 30)
Employee('Miranda', 20)
Employee('Paolo', 42)
print(Employee.sort('name'))
print(Employee.sort('age'))
输出
^{pr2}$
operator.attrgetter的一个优点是我们可以向它传递多个属性,它将返回一个属性元组。我们可以使用它在一个过程中按多个属性排序。但是我们需要稍微修改.sort方法。其他代码保持不变。在@classmethod
def sort(cls, *attrs):
return sorted(cls.allEmployees, key=attrgetter(*attrs))
Employee('John', 30)
Employee('Miranda', 20)
Employee('Paolo', 42)
Employee('John', 20)
print(Employee.sort('name'))
print(Employee.sort('age'))
print(Employee.sort('name', 'age'))
输出[Employee(John, 30), Employee(John, 20), Employee(Miranda, 20), Employee(Paolo, 42)]
[Employee(Miranda, 20), Employee(John, 20), Employee(John, 30), Employee(Paolo, 42)]
[Employee(John, 20), Employee(John, 30), Employee(Miranda, 20), Employee(Paolo, 42)]
python 对象属性作为参数_如何将对象属性作为函数参数传递给lambda函数?相关推荐
- python中lambda函数_python中的lambda函数用法
例1:传入多个参数的lambda函数 defsum(x,y):return x+y 用lambda来实现: p = lambda x,y:x+yprint(p(4,6)) 例2:传入一个参数的lamb ...
- python提供两个对象身份比较操作符_标准类型对象比较操作符
标准类型对象比较操作符 (2008-08-31 12:22:17) 标签: it 标准类型对象身份比较操作符 Python 提供了is和is not操作符来测试两个变量是否指向同一个对象. 像下面这样 ...
- python定义接口的关键字_使用*args和**kws指定关键字参数
带有默认值的函数参数仍然是位置参数,因此您看到的结果是正确的.为参数指定默认值时,您不是在创建关键字参数.当参数不是由函数调用提供时,只使用默认值.在>>> def some_fun ...
- c语言全局变量作为参数_在C / C ++中使用变量参数列表
c语言全局变量作为参数 C/C++ provides a means to pass a variable number of arguments to a function. This artic ...
- 对象 普通po转_谈谈C++对象的构造
对 象 造化从来自有神 如何对此亦无尘 平生出处皆非妄 老去功名始见真 这是小编以"构造对象"为主题让九歌同学创作的七言绝句.九歌同学以一种非常玄妙的文风向我们介绍了对象的构造,但 ...
- c中将数组传递给子函数_在C ++中将对象传递给Non-Member函数
c中将数组传递给子函数 Here, we have to define a Non-Member Function, in which we have to pass an Object to the ...
- ssrs 级联参数_在SSRS中使用多值参数
ssrs 级联参数 This article covers the usage and detailed features of the multi-value parameter in SSRS. ...
- java main传入参数_向java的main()传入大量参数
项目中有一些用java写成的可执行的工具,需要调用者传入大量的参数.最开始,我使用的是最传统的方式,直接一个传入参数数组,于是有如下这么壮观的代码: public static void main(S ...
- vue修改计算属性的值_八.Vue计算属性
Vue计算属性 前言 我们要做的是springboot和vue.js所做的前后端分离的hr项目,所以从来没接触到vue的小伙伴,可以这篇文章 学Vue入门,这一篇就够了 模板内的表达式非常便利,但是设 ...
最新文章
- 【力扣网练习题】有效的括号
- AAAI 2020 | MaskGEC:通过动态掩蔽改善语法纠错
- 找到一款牛B的vim插件
- js 正则判断字符串是否为字母或数字
- ArcGIS Server常见问题集锦(转载)
- FPGA _Verilog HDL_8位加法器设计实验
- 搜集了一些AIDA64的GPGPU测试结果,现整理成表格共享
- java short 写法_Java Short类shortValue()方法及示例
- 2022东北四省赛 F. Tree Path (树剖 + 线段树维护堆)
- Python报错日志:Warnings模块简介
- 【C语言】大厂指针笔试题(1码+1图)详解——程序结果判断题
- 根据身高体重计算BMI指数 - scala
- android拓展内存卡,都取消存储卡拓展,而它却解决了安卓手机的大问题
- 抠图扣发丝ps修图扣证件照p图扣毛发
- VueUse(中文)——简介
- 讯搜 配置mysql_迅搜创建数据库索引
- 网关gataway的理解
- 高泽龙:下一个独角兽来自长租公寓,行业创新极大地释放租赁红利
- 试给每个局域网分配一个合适的网络前缀
- 共享超级蜘蛛池,使用经验和技巧。
热门文章
- 安卓学习 之 概述(一)
- JavaScript的运动——加速运动篇
- 天平应什么放置_天平是否应该放干燥剂?
- oracle转成整型_Oracle中如何用SQL把字符串转换成整型
- mysql删除属性_SQL语句处理一些修改、新增、删除、修改属性操作(MySql)
- shell函数与数组(了解函数,递归函数运用,了解数组,创建基数和偶数数组,冒泡排序,调试命令)
- android自定义滤镜,【Android】自定义View那点事(三)ColorFilter篇
- java拦截器_Java工程师年底跳槽高潮即将到来,斩获满意offer的必备技巧(二)
- C语言面试题分享(6)
- mac开启64位内核