当前位置:  开发笔记 > 编程语言 > 正文

返回变量vs返回函数调用

如何解决《返回变量vs返回函数调用》经验,为你挑选了1个好方法。



1> Vasili Syrak..:

该PEP8不指定你是否应该返回一个变量与函数.

但是,它确实说你应该保持一致:

在回报陈述中保持一致.函数中的所有return语句都应该返回一个表达式,或者它们都不应该返回.如果任何return语句返回一个表达式,那么任何没有返回值的return语句都应该明确地将其声明为return None,并且在函数末尾应该有一个显式的return语句(如果可以访问).

# Yes
def myfunction(a: int, b: int) -> int:
    if a % 2 == 0:
        return int(a ** b)
    else:
        return 0

# No
def my_bad_function(a: int, b: int) -> int:
    if a % 2 == 0:
        return int(a ** b)
    # Implicitly returns None when the above if statement evaluates False

返回相同类型的变量也是一个好主意(尽管未在PEP8中介绍).
你会看到我在上面的函数中添加了可选的类型提示.第二个功能偶尔会返回None.
如果使用此函数的另一个代码块期望返回值具有与之相同的属性int,则可能会导致问题,例如int.bit_length()

导致异常的代码示例:

for n in range(1, 10):
    nlen = my_bad_function(n * 5, n).bit_length()

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有