函数calculate_attribute不返回值;它只能通过副作用起作用.

通常在该函数中,我必须写以下几行:

print('some message')

set_attribute(value)

return

因此,我决定将其放入另一个函数中:

def report_and_set(value, message):

print(message)

set_attribute(value)

现在可以执行以下操作吗?

def calculate_attribute(params):

#...

if something:

return report_and_set(value, message)

#...

if another_condition:

return report_and_set(value, message)

#...

写这个感觉有点奇怪,因为report_and_set没有返回值.但是,如果我不这样做,则必须在每次调用report_and_set之后重复键入return.

解决方法:

有时,如果某些健全性检查失败,我可能会在函数的前几行插入一个返回值以保释.

我不会在这种情况下.

在这种情况下,我只会…

def calculate_attribute(params):

#...

if something:

report_and_set(value, message)

#...

elif another_condition:

report_and_set(value, message)

#...

但还要考虑Single Responsibility Principle(它同样适用于函数和类).如果您的函数很长,并且包含许多条件函数调用,

现在可能是到refactor的时候了!

标签:return-value,coding-style,python

来源: https://codeday.me/bug/20191201/2083344.html

python一个函数调用另一个函数的返回值_python-调用另一个函数后立即从函数返回...相关推荐

  1. python获取返回值_python 调用 shell ,获取返回值和返回信息

    网络上有各种方案解决python调用shell的解决方案,但是没有一个完美的,以下是本人整理的一个方案,比较完美地解决了同时解决获取返回值和返回信息. def run_linux_cmd_quiet( ...

  2. 算法训练 加法运算(你的表妹正在学习整数的加法,请编写一个程序来帮助她学习。该程序调用了一个函数GetTwoInts,由它来返回两个从键盘读入的100以内的整数,然后计算这两个整数之和,并把答案显示)

    问题描述 你的表妹正在学习整数的加法,请编写一个程序来帮助她学习.该程序调用了一个函数GetTwoInts,由它来返回两个从键盘读入的100以内的整数,然后计算这两个整数之和,并把答案显示出来.要求: ...

  3. python函数默认返回值_python笔记20_函数返回值

    主要内容: 小目标:掌握函数返回值 主要内容:return语句,返回多个参数 如果看完这篇文章,你还是弄不明白函数返回值: 你来找我,我保证不打你,我给你发100的大红包. 1. 函数默认返回值 Py ...

  4. python os.system返回值_python os.system()返回值判断

    最近遇到os.system()执行系统命令的情况,上网搜集了一下资料,整理如下,以备不时之需,同时也希望能帮到某些人. 一.python中的 os.system(cmd)的返回值与linux命令返回值 ...

  5. 【C 语言】字符串模型 ( strstr-while 模型 | 抽象函数模型 | 业务子函数接口定义要点 | 形参指针间接赋值 | 返回值状态 | 形参指针处理 | 形参指针判空 | 形参返回值 )

    文章目录 前言 一.业务子函数接口定义要点 二.完整代码示例 前言 字符串开发模型 : strstr-while/do-while 模型 : 在 字符串 中 查找 子串特征 ; 两头堵模型 : 两个指 ...

  6. python 定义函数 返回值只取其中一个

    def test():return 1,2 a, b = test() 1 2 a, _ = test() 1 # 说明 a, _ = test() 中 返回的是一个int类型 后续可直接运算 # a ...

  7. c++ 一个函数包括多个返回值判断_go语言学习笔记(10)-函数、包的使用

    跳转控制语句-continue 1:continue语句用于结束本次循环,继续执行下一次循环. 2:continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环,这个和前面 ...

  8. matlab .m 返回值,MATLAB一个M文件的function返回值怎么在另一个M文件中的函数调用这个返回值?...

    答:1.首先要在笔记本电脑上安装好指定版本的matlab软件并双击打开. 2.然后双击matlab图标打开其主页面,可以看到这个软件的按钮都是全英文单词的. 3.那么创建m文件的方法就是鼠标移动到Ne ...

  9. if python 判断函数返回值_Python函数的返回值和作用域

    函数的返回值和作用域 1.返回值 def guess(x): if x > 3: return "> 3" else: return "<= 3&quo ...

最新文章

  1. Android Studio导入Eclipse项目的两种方法
  2. AI洞观 | 戴上红帽 看IBM冲杀云计算市场
  3. python文件操作:新建删除文件,获取拼接路径,罗列文件路径
  4. MapReduce实现Apriori算法
  5. linux配置防火墙,开启端口
  6. LeetCode 576. 出界的路径数(动态规划)
  7. 静态代码检查工具简介
  8. CSS 魔法系列:纯 CSS 绘制各种图形《系列五》
  9. 不支持的major.minor版本52.0 [重复]
  10. 在有网络还是比较好解决软件上的问题
  11. python怎么设置notebook_JupyterNotebook设置Python环境的方法步骤
  12. python爬虫携带cookie访问QQ空间
  13. asp.net + MVC5 入门完整教程一
  14. 如何使用Navicat将psc备份导入到MySQL
  15. 目前主流的几种数字视频压缩编解码标准(转载)
  16. 华为p60art参数配置 华为p60art怎么样
  17. wampServer 设置
  18. 【DG】DG日常维护
  19. “热榜第一”阿里年薪80W的Java架构师,到底是有着怎样的水平?
  20. 电商不仅仅有CRUD——0基础了解电商中的引流工具谷歌GMC

热门文章

  1. spark学习-58-Spark的EventLoggingListener
  2. 【MySQL】MySQL数据库SQL优化工具 SQL Tuning Expert for MySQL(收费)
  3. 【kubernetes】http proxy error stream error stream ID 3 INTERNAL_ERROR
  4. 【Flink】Flink 设置JVM参数
  5. 数据结构知识点大汇总(八)
  6. 两个 Integer 数值之间不建议使用 “==” 进行比较
  7. CMS GC 垃圾回收
  8. MySQL学习-连接查询
  9. 基于XML的AOP配置
  10. hadoop2.7.3+spark2.1.0+scala2.12.1环境搭建(4)SPARK 安装