• 技术文章 >Python技术 >Python基础教程

    python运算符表达式本质

    小妮浅浅小妮浅浅2021-01-11 15:14:31原创2343

    在上篇中我们讲到了运算符的重载,那么就会引申出一个新的概念,运算符表达式。因为我们的运算符重载后需要重新调用函数,那么表达式就是调用的工具。这么说表达式还是比较抽象的,下面我们会先讲讲基本的表达式帮助小伙伴们理解,然后给大家带来python运算符的表达式,并进一步探究它的本质。

    1.表达式

    是代码的重要组成部分,一个表达式由运算符和操作数两部分组成。

    一个表达式就描述了对哪些数据,进行了什么样的操作。

    如下就是一个表达式:

    sum = 1 + 2

    其中,=和+ 都是运算符,=是赋值运算符,+ 是相加运算符,sum,1,2 都是操作数。

    这句话的含义是,将1 与 2 相加,并将它们的结果赋值给变量sum。

    2.运算符表达式

    运算符表达式实现上,是一个成员函数。换句话说,运算符表达式其实是一个语法糖,如果你重载了某个运算符(实现其对应的成员函数),你就可以使用这个运算符的特定表达式(语法糖)来调用重载的函数。

    Python里,万物皆对象。那怕一个整数常量10,它也是一个整数类型的对象。当我们对10进行加法运算的时候,事实上就是调用了10的加法运算函数。如下的例子就很好地证实了我们的结论:

    # 定义两个整数,事实上a和b都是整形对象
    a = 10
    b = 8
     
    # 由于整型重载了加法运算符,即重载了函数__add__
    # 在运行阶段, a + b 会被转成a.__add__(b)的形式运行
    # 所以如下的两行代码是等价的
    c = a + b
    c = a.__add__(b)
     
    # 你甚至可以直接调用数值的__add__函数
    # 以下两行代码是等价的
    # 思考题:(10)的括号不可去掉,为什么?
    c = (10).__add__(8)
    c = 10 + 8

    以上就是我们对于python运算符表达式的一些分析和讨论,在开始学习运算符表达式之前,需要小伙伴们先理解运算符重载的使用,还不会的可以看看往期文章。

    专题推荐:python运算符表达式
    品易云
    上一篇:python中如何给list排序? 下一篇:小数在python取整除运算符中输出

    相关文章推荐

    • python if在比较运算符中怎么用?• python if在成员运算符中怎么用?• python操作运算符的数字计算优先级• python入门:if语句中的逻辑运算符• postgresql基础:运算符• 怎么用python身份运算符?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网