您现在的位置是:群英 > 开发技术 > Python语言
Python中运算的概念怎样理解,运算符有哪些?
Admin发表于 2021-12-31 17:56:301116 次浏览

    这篇文章我们来了解Python中运算的相关内容,运算是Python学习中的基础知识,下文将介绍运算概念、算术运算符、比较运算符、成员运行和其他运算等等,文中有很详细的介绍,有需要的朋友可以参考,接下来就跟随小编来一起学习一下吧!

        1、运算概念的理解

        运算(Operation)是操作逻辑的抽象

    • 运算体现一种操作逻辑,在广义角度来说任何程序都是一种运算
    • Python解释器通过保留方法预留了一批运算的接口,需要重载
    • 保留方法一般对应运算符,Python中运算体现为运算符的重载
    • 运算本质上体现了交互关系、包含关系和常规的操作关系

        运算重载的限制

    • 不能重载Python语言内置类型的运算符
    • 不能新建运算符,只能通过重载完成
    • is,and,not,or不能被重载

        2、运算符的重载

        2.1 算术运算符

        一元运算符:+-~
        二元运算符:+-*///%divmod()  pow() **<<>>&^|

    保留方法 对应操作 描述
    .__neg__(self) -obj 定义对象取负的运算逻辑
    .__pos__(self) +obj 定义对象取正的运算逻辑
    .__abs__(self) abs(obj) 定义对象绝对值的运算逻辑
    .__invert__(self) ~obj 定义对象取反的运算逻辑
    .__add__(self, other) obj + other 定义了两个对象加法的运算逻辑
    .__sub__(self, other) obj - other 定义了两个对象减法的运算逻辑
    .__mul__(self, other) obj * other 定义了两个对象乘法的运算逻辑
    .__truediv__(self, other) obj / other 定义了两个对象除法的运算逻辑
    .__floordiv__(self, other) obj // other 定义了两个对象整数除的运算逻辑
    .__mod__(self, other) obj % other 定义了两个对象模的运算逻辑
    .__divmod__(self, other) divmod(obj, other) 定义了两个对象除模的运算逻辑
    .__pow__(self, other) obj ** other 定义对象幂的运算逻辑
    .__lshift__(self, other) obj << other 定义对象左移的运算逻辑
    .__rshift__(self, other) obj >> other 定义对象右移的运算逻辑
    .__and__(self, other) obj & other 定义两个对象位于运算逻辑
    .__xor__(self, other) obj ^ other 定义两个对象位异或的运算逻辑
    .__or__(self, other) `obj other`

        2.2 比较运算符

        比较运算符:<、<=、==、!=、>、>=

    保留方法 对应操作
    .__lt__(self, other) obj < other
    .__le__(self, other) obj <= other
    .__eq__(self, other) obj == other
    .__be__(self, other) obj != other
    .__gt__(self, other) obj > other
    .__ge__(self, other) obj >= other

         两个对象比较操作的运算重载

        2.3 成员运算

        成员获取:[]def.eversed()
        成员判断:in

        
    保留方法 对应操作 描述
    .__getitem__(self, key) obj[k] 定义获取对象中序号K元素的运算逻辑,K为整数
    .__setitem__(self, key, v) obj[k] = v 定义赋值对象中序号K元素的运算逻辑
    .__delitem__(self, key) del obj[k] 定义删除对象中序号K元素的运算逻辑
    .__reversed__(self) obj.reversed() 定义对象逆序的运算逻辑
    .__contains__(self, item) item in obj 定义in操作符对应的运算逻辑

        2.4 其他运算

        Python内置函数:rep(),str(),len(),int(),flaot,complex(),round(),bytes(),bool(),format(),.format(常用方法)

    保留方法 对应操作 描述
    __repr__(self) repr(obj) 定义对象可打印字符串的运算逻辑
    __str__(self) str(obj) 定义对象字符串转换的运算逻辑
    __len__(self) len(obj) 定义对象长度操作的运算逻辑
    __int__(self) int(obj) 定义对象整数转换的运算逻辑
    __float__(self) float(obj) 定义对象浮点数转换的运算逻辑
    __complex__(self) complex(obj) 定义对象复数转换的运算逻辑
    __round__(self) round(obj) 定义对象四舍五入的运算逻辑
    __bytes__(self) bytes(obj) 定义对象字节串转换的运算逻辑
    __bool__(self) bool(obj) 定义对象布尔运算的运算逻辑
    .__format__(self, format_spec) obj.format() format(obj) 定义对象格式化输出的运算逻辑

        3、Python类的多态

        多态 _(Polymorphism)_是针对方法,体现方法灵活性的多态;简单的说,他包含两部分

        参数类型的多态:一个方法能够处理多个类型的能力

        Python的函数/方法没有类型声明限制,天然支持参数类型的多态性

        Python编程理念在于:文档约束,而非语法约束

        对不同参数类型的区分以及功能,需要有程序员完成

        参数形式的多态:一个方法能够接受多个参数的能力

        Python的函数/方法可以支持可变参数,支持参数形式的多态性

        Python的类方法也是函数,函数的各种定义方式均有效

        对不同参数个数以及默认值的确定,需要由程序员完成

        多态是OOP的一个传统概念,Python天然支持多态,不需要特殊语法,示例代码如下所示:

    import abc
    class Animal(metaclass=abc.ABCMeta): #同一类事物:动物
        @abc.abstractmethod
        def talk(self):
            pass
    
    class Cat(Animal): #动物的形态之一:猫
        def talk(self):
            print('say miaomiao')
    
    class Dog(Animal): #动物的形态之二:狗
        def talk(self):
            print('say wangwang')
    
    class Pig(Animal): #动物的形态之三:猪
        def talk(self):
            print('say aoao')
    

        关于Python运算的相关内容就介绍到这,上述示例具有一定的借鉴价值,感兴趣的朋友可以参考,希望能对大家学习和理解Python中运算有帮助,想要了解更多大家可以关注其它的相关文章。

    文本转载自脚本之家

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

    标签: python 运算
    相关信息推荐
    2022-05-28 17:11:17 
    摘要:Java中boolean类型占用字节:1、1个bit,理由是boolean类型的值只有true和false两种逻辑值,在编译后会使用1和0来表示;2、1个字节,理由是虽然编译后1和0只需占用1位空间,但计算机处理数据的最小单位是1个字节。
    2022-06-21 17:02:38 
    摘要:本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于类数组和可迭代对象的实现原理,包括了把对象本身构造成迭代器、String的迭代器等等相关内容,下面一起来看一下吧,希望对大家有帮助。
    2022-01-17 18:42:19 
    摘要:这篇文章我们来简单的了解一下Java和HTML以及它们的区别,Java和HTML都是网站开发经常使用的,接下来我们就来了解看看,有需要的朋友就跟随小编来一起学习一下吧!
    云活动
    推荐内容
    热门关键词
    热门信息
    群英网络助力开启安全的云计算之旅
    立即注册,领取新人大礼包
    • 联系我们
    • 24小时售后:4006784567
    • 24小时TEL :0668-2555666
    • 售前咨询TEL:400-678-4567

    • 官方微信

      官方微信
    Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
    增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
    免费拨打  400-678-4567
    免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
    微信公众号
    返回顶部
    返回顶部 返回顶部