vil*_*ric 8 python coding-style
我实际上使用Python和Flask作为我的devblog.我知道根据语言的不同,建议在else非强制性时使用显式,但我不知道它在Python中是如何工作的.
例如,我有一个函数,if如果语句为真,则返回一些东西.所以,else没有必要,因为有或没有它,执行继续正常.
def foo(bar):
if not isinstance(foo, list):
return "an error"
else: # not necessary
return "something"
Run Code Online (Sandbox Code Playgroud)
所以,我应该像这样使用它,或者像:
def foo(bar):
if not isinstance(foo, list):
return "an error"
return "something"
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,Python会return None在函数的末尾添加一个显式内容-即使我们看到它不是真正需要的。在第二种情况下则没有。
我觉得在else:那里没有任何优势
>>> import dis
>>> def f():
... if 1>2:
... return 2
... return 3
...
>>> def g():
... if 1>2:
... return 2
... else:
... return 3
...
>>> dis.dis(f)
2 0 LOAD_CONST 1 (1)
3 LOAD_CONST 2 (2)
6 COMPARE_OP 4 (>)
9 POP_JUMP_IF_FALSE 16
3 12 LOAD_CONST 2 (2)
15 RETURN_VALUE
4 >> 16 LOAD_CONST 3 (3)
19 RETURN_VALUE
>>> dis.dis(g)
2 0 LOAD_CONST 1 (1)
3 LOAD_CONST 2 (2)
6 COMPARE_OP 4 (>)
9 POP_JUMP_IF_FALSE 16
3 12 LOAD_CONST 2 (2)
15 RETURN_VALUE
5 >> 16 LOAD_CONST 3 (3)
19 RETURN_VALUE
20 LOAD_CONST 0 (None)
23 RETURN_VALUE
Run Code Online (Sandbox Code Playgroud)
这已经在这里讨论过:If-Else-Return 还是只是 if-Return?
本质上,这两种形式在效率方面是等效的,因为机器无论如何都必须进行跳跃。因此,这归结为编码风格,您必须自己(或与您的团队)决定。
就我个人而言,为了可读性,我更喜欢使用else语句。
这确实没有什么区别。无论哪种方式都会做同样的事情。
\n\n我更喜欢后者,因为它少了一行代码。
\n\nJe pr\xc3\xa9f\xc3\xa8re cette derni\xc3\xa8re
\n| 归档时间: |
|
| 查看次数: |
2544 次 |
| 最近记录: |