python module使用之----operator
来源:互联网 发布:淘宝买装饰画 编辑:程序博客网 时间:2024/09/21 09:28
1.operator
我这里主要可能介绍的是python3.X版本的,会和python2.X版本有点不一致,具体的细节很多,小伙伴们遇到问题还请自行百度吧,LZ也没有足够的能力能够涵盖到所有的问题,只能把我自己遇到的一些问题分享出来,避免小伙伴们再走一遍弯路!
#coding:utf-8from operator import *#逻辑操作符(operator的一些操作函数与原本的运算是相同的)a = [1, 2, 3]b = aprint ('a =', a)print ('b =', b)printprint ('not_(a):', not_(a))print ('truth(a):', truth(a))print ('is_(a, b):', is_(a, b))print ('is_not(a,b):', is_not(a, b))#比较操作符(这些函数等价于<、<=、==、>=和>的表达式语法)a = 3b = 5print ('a =', a)print ('b =', b)printfor func in (lt, le, eq, ne, ge, gt): print('{0}(a, b):'.format(func.__name__), func(a, b))#算术操作符(abs返回值得绝对值,neg返回(-obj), pos返回(+obj))a, b, c, d = -1, 2, -3, 4print ('a =', a)print ('b =', b)print ('c =', c)print ('d =', d)print ('\nPositive/Negative:')print ('abs(a):', neg(a))print ('neg(b):', neg(b))print ('pos(a):', pos(a))print ('pos(b):', pos(b))#mod表示取模, mul 表示相乘,pow是次方, sub表示相减a = -2b = 5.0print ('a =', a)print ('b =', b)print ('\nArithmetic')print ('add(a, b):', add(a, b))print ('div(a, b):', divmod(a, b))print ('floordiv(a, b):', floordiv(a, b))print ('mod(a, b):', mod(a, b))print ('mul(a, b):', mul(a, b))print ('pow(a, b):', pow(a, b))print ('sub(a, b):', sub(a, b))print ('truediv(a, b):', truediv(a, b))#and 表示按位与, invert 表示取反操作, lshift表示左位移, or表示按位或, rshift表示右位移,xor表示按位异或。a = 2b = 6print ('a =', a)print ('b =', b)print ('\nBitwise:')print ('and_(a, b):', and_(a, b))print ('invert(a):', invert(a))print ('lshift(a, b) :', lshift(a, b))print ('or_(a, b):', or_(a, b))print ('rshift(a, b):', rshift(a, b))print ('xor(a, b):', xor(a, b))#原地操作符#即in-place操作, x += y 等同于 x = iadd(x, y), 如果复制给其他变量比如z = iadd(x, y)等同与z = x; z += ya = 3b = 4c = [1, 2]d = ['a', 'b']print ('a =', a)print ('b =', b)print ('c =', c)print ('d =', d)printa = iadd(a, b)print ('a = iadd(a, b) =>', a)printc = iconcat(c, d)print('c = iconcat(c, d) =>', c)#属性和元素的获取方法#operator模块最特别的特性之一就是获取方法的概念,获取方法是运行时构造的一些可回调对象,用来获取对象的属性或序列的内容,获取方法在处理迭代器或生成器序列的时候特别有用,它们引入的开销会大大降低lambda或Python函数的开销from operator import *class MyObj(object): def __init__(self, arg): super(MyObj, self).__init__() self.arg = arg def __repr__(self): return 'MyObj(%s)' % self.argobjs = [MyObj(i) for i in range(5)]print ("Object:", objs)g = attrgetter("arg")vals = [g(i) for i in objs]print ("arg values:", vals)objs.reverse()print ("reversed:", objs)print ("sorted:", sorted(objs, key=g))#属性获取方法类似于:lambda x, n='attrname':getattr(x,nz)from operator import *l = [dict(val=-1*i) for i in range(4)]print ("dictionaries:", l)g = itemgetter("val")vals = [g(i) for i in l]print ("values: ", vals)print ("sorted:", sorted(l, key=g))l = [(i,i*-2) for i in range(4)]print ("tuples: ", l) g = itemgetter(1)vals = [g(i) for i in l]print ("values:", vals)print ("sorted:", sorted(l, key=g))#结合操作符和定制类#operator模块中的函数通过相应操作的标准Python接口完成工作,所以它们不仅适用于内置类型,还适用于用户自定义类型from operator import *class MyObj(object): def __init__(self, val): super(MyObj, self).__init__() self.val = val return def __str__(self): return "MyObj(%s)" % self.val def __lt__(self, other): return self.val < other.val def __add__(self, other): return MyObj(self.val + other.val)a = MyObj(1)b = MyObj(2)print (lt(a, b))print (add(a,b))#类型检查#operator 模块还包含一些函数用来测试映射、数字和序列类型的API兼容性#python2.7支持,python3.5不支持# from operator import *# class NoType(object):# pass# class MultiType(object):# def __len__(self):# return 0# def __getitem__(self, name):# return "mapping"# def __int__(self):# return 0# o = NoType()# t = MultiType()# for func in [isMappingType, isNumberType, isSequenceType]:# print ("%s(o):" % func.__name__, func(o))# print ("%s(t):" % func.__name__, func(t))#获取对象方法#使用methodcaller可以获取对象的方法from operator import methodcallerclass Student(object): def __init__(self, name): self.name = name def getName(self): return self.namestu = Student("Jim")func = methodcaller('getName')print (func(stu)) #输出Jim
放出部分运行的截图,因为print函数使用的比较多,所以打印出来的内容比较多,可以注释掉部分或者对着源代码自己看一下。。。
这里举得例子都是比较简单基础的啦O(∩_∩)O
0 0
- python module使用之----operator
- python lib 之 operator
- python之模块module
- python module使用之----Numpy(快速入门)
- python之str.join operator.itemgetter
- Python标准库之functools,itertools,operator
- Python学习系列之Module
- python注意之module命名
- python module学习之natsort
- python module学习之beautifulsoup
- 014.Module Operator 模运算
- 014.Module Operator 模运算
- python学习笔记之module && package
- python 之 ConfigParser module简用说明
- Python 之 ImportError: No module named ***
- Python 之包(Package)与模(Module)
- Python的模块module导入与使用
- Python入门学习之operator--操作符函数
- 题目三:输入一个链表,从尾到头打印链表每个节点的值。
- webpack学习笔记1
- hbuilder检测不到夜神模拟器 -- 解决办法
- spring 框架说明文档学习记录(3)
- 1.3 爬虫架构
- python module使用之----operator
- [WAMP网站开发] PHP实现select新闻查询及超链接详情跳转
- Math类中ceil、floor、round取整介绍
- Caffe中Blob细解
- 深入 Composer autoload
- 生成sample_negative.dat AdaBoost训练
- CUDA-计时
- js的认识
- 在iOS6中UDID被IFA替代,新增广告跟踪开关ATE