gpt4 book ai didi

python - 在Python中,传递和返回有什么区别

转载 作者:IT老高 更新时间:2023-10-28 22:01:29 25 4
gpt4 key购买 nike

我在 Pinax 和其他 django 应用程序中看到了一些代码,这些代码没有通过,而是使用了一个空的 return 语句。有什么区别,它会对我正在运行的下面的 django 代码产生任何影响吗?该代码是一种信号方法,可自动将主题标签保存到 taggit 推文对象的 Tag 对象中。

我在这里看到一个问题,关于 PHP 中是否有 return 语句是否会对解释的字节码产生影响,但我不确定它是否与 Python 相关。

import re
TAG_REGEX = re.compile(r'#(?P<tag>\w+)')

def get_tagged(sender, instance, **kwargs):
"""
Automatically add tags to a tweet object.
"""
if not instance:
return # will pass be better or worse here?
post = instance
tags_list = [smart_unicode(t).lower() for t in list(set(TAG_REGEX.findall(post.content)))]
if tags_list:
post.tags.add(*tags_list)
post.save()
else:
return # will a pass be better or worse here?
post_save.connect(get_tagged, sender=Tweet)

最佳答案

if not instance:
return # will pass be better or worse here?

更糟。它改变了逻辑。 pass 实际上意味着:什么都不做。如果您在此处将 return 替换为 pass,则控制流将继续,从而更改代码的语义。

pass 的目的是创建空 block ,这在 Python 的缩进方案中是不可能的。例如,C 中的空函数如下所示:

void foo()
{
}

在 Python 中,这将是一个语法错误:

def foo():

这就是 pass 派上用场的地方:

def foo():
pass

关于python - 在Python中,传递和返回有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7872611/

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