开发者社区 问答 正文

计算表达式求值时有什么副作用?

计算表达式求值时有什么副作用?

展开
收起
鲁花花生油 2021-10-29 16:23:04 643 分享 版权
来自: 华章出版社
1 条回答
写回答
取消 提交回答
  • 在表达式的求值过程中,对状态的改变称为表达式的副作用。Python中内建的各种运算符(此处是狭义的含义,如加、减、乘、除、比较等运算符,并不包含用户自定义的运算符或函数)是没有副作用的,但各种函数调用时常带有副作用(比如各种输入、输出函数)。在使用带有副作用的表达式构建复杂表达式时要格外留意,因为这可能带来程序员容易忽视的行为。如:if expA and expB :

     这条语句用来测试表达式A和B都为真的条件。expA and expB的计算具有短路性质,即如果A为假,则整个表达式已然能够判断为假,表达式B不会被求值。如果表达式B包含函数调用,则意味着该函数不一定被调用。

    不过总体说来,Python中副作用带来的麻烦并不多。程序员只要不在复杂表达式中嵌套带有副作用的函数即可避免这些容易混淆的情形。这种编码风格也能很容易遵守。

    资料来源:《Python编程从0到1》,文章链接:https://developer.aliyun.com/article/726745

    2021-10-29 16:25:45
    赞同 展开评论
问答地址: