gpt4 book ai didi

python - 如何以编程方式确保函数包含 return 语句?

转载 作者:行者123 更新时间:2023-12-03 15:41:08 25 4
gpt4 key购买 nike

如何验证函数是否包含 return关键词?我经常忘记返回行,所以我担心我的包的用户在提供基于函数的输入时也会忘记。

def appler():
a = "apple"
# `return` is missing

def bananer():
b = "banana"
return b
我可以解析包含 "return" 的最后一行的函数的实际代码字符串。但这不是很健壮(它可能由评论触发)。
def validate_funk(funk):
if condition_to_check_that_it_contains_rtrn:
pass
else:
raise ValueError(f"Yikes - The function you provided not contain a `return` statement:\n\n{funk}")
>>> validate_funk(appler)
#triggers ValueError

>>> validate_funk(bananer)
# passes
编辑:理想情况下不运行该功能。

最佳答案

你真正关心的可能不是 return 语句本身,而是函数返回某种类型的东西。您可以使用 type hints (PEP 484) 最轻松地完成此操作。 :

def appler() -> str:
a = "apple"
# `return` is missing

def bananer() -> str:
b = "banana"
return b
现在,运行 static analysis tool像 mypy 或 Pyre(或许多其他人):将发出关于函数 appler 中错误返回类型的警告(预期 str ,得到 NoneType )。
寻找 sabik 的答案以获得更一般的答案。编写(单元)测试是另一个很好的实践,它可以捕捉到更多的问题,而且——如果做得好——是对代码可维护性的投资。

关于python - 如何以编程方式确保函数包含 return 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67074975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com