首页 > 编程语言 >Python:operator模块

Python:operator模块

时间:2023-09-27 22:26:48浏览次数:29  
标签:index bar get Python print zero 模块 operator methodcaller

methodcaller:调用参数指定的方法,实例方法和类方法都可以;

04. Python 冷知识:你可能不知道的三个操作符-itemgetter, attrgetter, methodcaller_哔哩哔哩_bilibili

from operator import itemgetter, attrgetter, methodcaller


print("下面演示itemgetter用法:")
get_index_zero = itemgetter(0)

print(get_index_zero)

print(get_index_zero([22,34,11]))

print(get_index_zero({0: 'hello', 1:'good'}))



print("\n下面演示attrgetter用法:")
get_a = attrgetter('a')

print(get_a)

class T:
    a = 1000
    
    
    
print(get_a(T))
print(get_a(T()))  #实例可以访问类属性


 
print("\n开始演示methodcaller用法:")
bar = methodcaller('bar','hihihi')

print(bar)


T.bar = lambda self, a :print(a)

print(bar(T()))
 
#methodcaller是调用方法的,但这个T.bar是个函数,所以bar(T)调用时会报错
#实例T().bar是个方法
print('\n这种bar是个函数:',T.bar )
print('\n这种bar是个方法:',T().bar )
print(" ")
# print("\n此时还没定义下面类方法时,这种会报错:",bar(T))


T.bar = classmethod(lambda cls, a: print(a))

print("\n定义完类方法后,再用这种形式调用就不会报错了:",bar(T))

 

标签:index,bar,get,Python,print,zero,模块,operator,methodcaller
From: https://www.cnblogs.com/bravesunforever/p/17734474.html

相关文章

  • 【Python进阶-PyQt5】00搭建PyQt5环境
    1.创建独立开发虚拟环境1.1虚拟环境简介我们编写的程序,有时用到的Python库是不一样的,比如说开发桌面应用程序我们主要用到PyQt5相关的Python库、开发Web应用程序我们主要用到Django相关的Python库等等。假设我们在开发桌面应用程序的时候除了PyQt5相关的Python库外,还附加了其他......
  • Python实现自动生成四则运算题目和答案检测
    这个作业属于哪个课程软件工程这个作业要求在哪里结对项目这个作业的目标实现自动生成四则运算题目功能,以及给定题目和答案、判断答案对错的功能本项目上传至个人GitHub:yulinnn/PythonProject_FourOperations项目需求题目:实现一个自动生成小学四则运算题目的......
  • 模块化打包工具-初识Webpack
    1.为什么需要模块化打包工具在上一篇文章中提到的ESModule可以帮助开发者更好地组织代码,完成js文件的模块化,基本解决了模块化的问题,但是实际开发中仅仅完成js文件的模块化是不够的,尤其是面对一个较为庞大的工程项目的时候,主要仍有以下几个问题需要解决:ESModule是ES6新语法,一......
  • mojo编程语言:编译后的mojo二进制执行文件调用python库报错——设置MOJO_PYTHON_LIBRAR
    代码:frompythonimportPythonfnf()raises:#ThisisequivalenttoPython's`importnumpyasnp`letnp=Python.import_module("numpy")leta=np.array([1,2,3])print(a)fnmain()raises:f() mojo编译后执行,报错:Moj......
  • python智能切分视频画面
    #pipinstallscenedetectopencv-python-ihttps://pypi.tuna.tsinghua.edu.cn/simplefromscenedetect.video_managerimportVideoManagerfromscenedetect.scene_managerimportSceneManagerfromscenedetect.stats_managerimportStatsManagerfromscenedetect.d......
  • 水果识别系统Python+TensorFlow+卷积神经网络算法【图像识别】
    引言随着科技的发展,我们生活中的各种便利工具日益增加。例如,你有没有想过,当你在超市里看到一个陌生的水果,却不知道它是什么名字时,有一个工具可以帮你识别出来?今天,我要为大家介绍一种基于Python的水果识别系统。这个系统不仅识别准确,还具有友好的用户界面。下面,让我们一起探索这个......
  • python+unittest跳过测试和预期失败
    在运行测试时,有时需要直接跳过某些测试用例,或者当测试用例符合某个条件时跳过测试,又或者直接将测试用例设置为失败。、importunittestfromleap_yearimportLeapYearclassTestLeapYear(unittest.TestCase):@unittest.skip("直接跳过测试")deftest_2000(self......
  • Python中super()的运作机制
    Python中super()的运作机制:super()的定义:defsuper(cls,instance):mro=inst.__class__.mro()returnmro[mro.index(cls)+1]mro(Methodresolutionorder)是python在多继承类中查找目标函数的策略,其采用的是广度优先算法,可通过类的mro方法查看。如下方代码:cla......
  • pipreqs:Python导出项目依赖包
    许多教程使用的是pipfreeze>requirements.txt指令,但是这个指令只能检索当前虚拟环境中安装的包。要想自动检索项目文件中的依赖包要使用pipreqs,使用方法如下:首先安装pipreqspipinstallpipreqs使用在项目根目录下执行命令pipreqs./#生成requirements.txtpip......
  • 赛事星平台的作答脚本Python实现(适用于刷时间)
    灵感来源:白嫖某文理的一次答题竞赛,前一百名有奖品正好缺个蓝牙耳机索性就刷个时间白嫖一波吧.咳咳,正式开始分享咯.准备工作:谷歌浏览器以及自带开发者工具页面分析:由于此次白嫖活动已经结束,就采用其他竞赛URL进行分析,原理相同.URL:https://saishi.cnki.net/MatchInde......