2016-11-25 32 views
-3

我见过这样写的代码:根据样式,在python中使用sys.exit()结束应用时,可以使用类似参数的函数吗?

if __name__ == "__main__": 
    #... 
    result = someFunction(someParameter) 
    sys.exit(result) 

即使这样,你写的函数的调用在sys.exit()函数:

if __name__ == "__main__": 
    #... 
    sys.exit(someFunction(someParameter)) 

是哪个按照风格最正确的选择?

+6

这不是一种选择,它是同样的事情,只是在第二个你没有创建任何变量。 – ettanany

+1

如果还有一些代码会怎么样(忘记'sys.exit()')?如果使用变量,则会存储其值,如果使用函数内联的结果会发生什么情况?它的返回值是否在使用后仍然在堆栈中? 你必须调用'gc.collect()'吗?关于python内存管理的答案会很棒。 –

+0

这是一样的结果,但不一样的东西..我想知道根据风格什么是最好的选择。就像freebie说的那样,最可读的选项是正确的,所以第一个。 – Denr2

回答

3

两者都是等价的,但我认为你知道这一点。如果你从风格的角度来问,我会说你应该总是喜欢这个更具可读性的选项。在这种情况下,我认为第一个更具可读性。

Python按惯例使用snake_case,所以你可能会考虑使用它来定义你的变量和函数。

您可能还想要将result变量的名称更改为更具描述性。

exit_status = some_function(some_parameter) 
sys.exit(exit_status) 

希望这是你以后的样子。

编辑:@AnttiHaapala提出了一个很好的观点,succeeded不是最好的变量名称,因为0是Python中的Falsy,但认为pass是退出代码。我已将其更名为exit_status

+0

好吧,我不会将变量命名为“succeeded”,因为'sys.exit'采用退出代码,成功为'0',但在Python中,'0'被认为是* falsy *值。 –

+0

@AnttiHaapala好点。你会怎么称呼它? – freebie

+0

也许那'exit_status'或'exit_code' –

相关问题