V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Chyroc
V2EX  ›  Python

一段代码经常需要用到,封为函数。但是其中有直接 return 也有不 return 然后后续有不同的处理的,怎么解决?

  •  
  •   Chyroc · 2016-08-28 12:45:48 +08:00 · 3330 次点击
    这是一个创建于 3012 天前的主题,其中的信息可能已经有所发展或是发生改变。
    17 条回复    2016-08-29 20:49:17 +08:00
    dousao
        1
    dousao  
       2016-08-28 12:47:43 +08:00
    break
    Cbdy
        2
    Cbdy  
       2016-08-28 12:49:20 +08:00 via Android
    每个函数都要 return ,不然怎么回到调用者?
    hahasong
        3
    hahasong  
       2016-08-28 12:57:35 +08:00
    把公共的抽出来成一个函数,不同处理的再另写一个调用这个函数,之后再继续自己的处理
    Arnie97
        4
    Arnie97  
       2016-08-28 13:01:16 +08:00 via Android
    @Cbdy 他的意思是 explicit 的写一个 return 语句
    zhuangzhuang1988
        5
    zhuangzhuang1988  
       2016-08-28 13:09:45 +08:00
    raise exception
    21grams
        6
    21grams  
       2016-08-28 14:46:57 +08:00 via Android
    那就 return 呗,这有啥好纠结的
    wizardoz
        7
    wizardoz  
       2016-08-28 15:20:41 +08:00
    回调函数
    iamzuoxinyu
        8
    iamzuoxinyu  
       2016-08-28 15:23:02 +08:00
    函数加个 boolean 参数, true 则返回,否则继续。
    bombless
        9
    bombless  
       2016-08-28 15:29:05 +08:00 via Android   ❤️ 1
    其实你永远不需要 return

    你只需要把你想丢出来的值包到异常里抛出来

    搞不懂 return 有啥用(滑稽
    tiiime
        10
    tiiime  
       2016-08-28 15:32:37 +08:00 via Android
    @bombless 角度刁钻
    secondwtq
        11
    secondwtq  
       2016-08-28 18:47:01 +08:00
    Exception 不是 Expectation ... 随便当 control flow 用不太好吧
    stillwater
        12
    stillwater  
       2016-08-28 19:40:21 +08:00
    走到最后自己就 return None 了
    fiht
        13
    fiht  
       2016-08-29 00:07:29 +08:00
    我才楼上是个写 python 的.
    出现这样的事情那我感觉楼主你的方法封装得有点不对头啊
    llajaunie
        14
    llajaunie  
       2016-08-29 00:46:17 +08:00 via iPad
    这样如何

    bool action( int entree, int *sortie){
    //...
    if(succes){
    *sortie= valeur;
    return true ;
    }
    //....

    return false ;
    }
    annielong
        15
    annielong  
       2016-08-29 09:32:08 +08:00
    或者都 return ,只不过不需要 return 的话 return 一个特殊值,然后调用后判断这个值
    linuxchild
        16
    linuxchild  
       2016-08-29 09:36:18 +08:00 via iPhone
    遇到过类似情况 记得好像是把明确处理的给了值 其他的直接 return 了
    msg7086
        17
    msg7086  
       2016-08-29 20:49:17 +08:00
    明确函数的指责,不要为了重用就一股脑打包拆出来。
    哪部分负责什么操作,输入是啥,输出是啥,异常是啥,做什么,先想好,就不会出现这种问题了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5414 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:27 · PVG 15:27 · LAX 23:27 · JFK 02:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.