This topic created in 4375 days ago, the information mentioned may be changed or developed.
由于代码风格各种混乱,我喜欢的是类 c 的风格
def fun(input1, input2, output)
if input1:
output.append(123)
return True
else:
return False
可是也有朋友喜欢在 fun 中直接raise 一下
try:
output = fun()
except:
#do what if false
你们是怎么看的呢
7 replies • 2014-05-22 22:25:27 +08:00
 |
|
1
for4 May 22, 2014 1
这不是代码风格的问题。 return 跟 raise 是不同的。
|
 |
|
2
g0t3n May 22, 2014
@ for4 可我想做到的仅是判断函数内执行是否出了问题然后进行相关的处理呢
|
 |
|
3
msg7086 May 22, 2014
exception是异常。也就是说,真的是发生了「异常」现象了。
具体还是看你程序的功能吧。
|
 |
|
4
ganxiyun May 22, 2014
本人非python程序员,主要是写Java,自己感受:
感觉你的fun程序是在处理业务逻辑的,返回值是表示输入是否合法的?可否把代码改成 def fun(input1, input2, output) output.append(123) 然后在调用fun的地方再去验证输入 if input 1:
如果fun不暴露给其他人调用,fun可以假设所有输入都合法。而判断输入是否合法的工作可能交由invoker去处理感觉更清晰。
如果fun暴露为api,可能做成exception更好些,这样可读性强一些
exception会略微影响性能
|
 |
|
5
g0t3n May 22, 2014
@ ganxiyun 点赞~ 如果是暴露到外部还是用 exception比较好。否则还是用返回值来判断函数的执行是否正确好了
|
 |
|
6
tonghuashuai May 22, 2014
函数执行的结果,用 Ture False 返回
函数执行过程中出错用 raise
raise 与 return 不是一种性质的
|