为什么返回不能在“if”name中执行__主要的用Python

为什么返回不能在“if”name中执行__主要的用Python,python,python-2.7,Python,Python 2.7,我正在编写一个程序,我需要该程序返回一个整数,比如说changed,以提醒控制器有更改。但当我想返回此值时,我一直收到以下消息: return 1 SyntaxError: 'return' outside function 我在网上读过一些帖子,他们都说这是缩进的问题,但我确信我的缩进是正确的,因为我尝试过这样一个简单的程序,但失败仍然存在 # -*- coding: utf-8 -*- if __name__ == "__main__": return 1 以下是错误消

我正在编写一个程序,我需要该程序返回一个整数,比如说
changed
,以提醒控制器有更改。但当我想返回此值时,我一直收到以下消息:

 return 1
 SyntaxError: 'return' outside function
我在网上读过一些帖子,他们都说这是缩进的问题,但我确信我的缩进是正确的,因为我尝试过这样一个简单的程序,但失败仍然存在

# -*- coding: utf-8 -*-


if __name__ == "__main__":
     return 1
以下是错误消息:

runfile('/home/iphyer/untitled1.py', wdir='/home/iphyer')
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "/usr/local/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 699, in runfile
 execfile(filename, namespace)
  File "/usr/local/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 81, in execfile
builtins.execfile(filename, *where)
  File "/home/iphyer/untitled1.py", line 9
   return 1
  SyntaxError: 'return' outside function
runfile('/home/iphyer/untitled1.py',wdir='/home/iphyer')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
runfile中的文件“/usr/local/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py”,第699行
execfile(文件名、命名空间)
execfile中的文件“/usr/local/lib/python2.7/dist packages/spyderlib/widgets/externalshell/sitecustomize.py”,第81行
execfile(文件名,*其中)
文件“/home/iphyer/untitled1.py”,第9行
返回1
SyntaxError:函数外部的“return”
虽然我真正的程序比这个复杂,但结构是一样的

我很困惑,因为如果我对
return
语句进行注释,所有程序都可以在没有任何警告的情况下运行

这很令人困惑。我想我不能使用
如果
返回一些值


谢谢!~

因为这不是一个方法。您只能从Python中返回

如果
name\uuu==“\uuuu main\uuuu”:
的主体在文件作为独立程序运行时执行。在这种情况下,您可能需要的是
exit()
sys.exit()
允许您向调用此脚本的脚本返回有限的信息。通常,您可以使用
退出(0)
发出成功信号,或者使用非零结果(限制为1-255)发出一组可能的失败信号.
return
用于子例程/函数,
exit
用于程序。

因为
return
必须在函数中。如果这对您没有意义,请仔细阅读函数。您希望值返回到哪里?@BrenBarn我负责代码的一部分,返回值可能会用在我的另一部分。以及我应该返回
changed
@sikisis的值,然后这是另一个人的工作,让他导入你的模块并调用你的方法,比如“getChange”etc@TigerhawkT3好的,我将进一步阅读Python的文档。您的意思是
return
must在函数中,这意味着如果_uname_==,我应该删除
__如果名称=“\uuuu main\uuuuu
变成函数?我想OP想要一个C风格的返回,并询问如何在python@Rudziankoŭ我应该将
if语句
,并将
if uuuu name_uuu==uuuu main_uuu
中的代码更改为一个函数。不需要回到这里吗?@Alan是的,我经常把Python和C混淆。只需创建一个返回值的
函数
。并在另一个“文件”中使用它,如:
导入您的_模块;您的_模块。您的_函数()
这将做您需要的事情,或者如果您出于某种原因决定放弃处理内部依赖,则可以看到@cdlane的答案,但使用脚本outputTerrific,我得到了它。所以我应该使用
exit()
来给出信息。@sikisis,这取决于您用来运行程序的实用程序是否允许您访问返回代码。例如,在Python的子流程模块中,它可以作为
returncode
属性使用。@sikisis,我有两个问题。程序同时工作吗?一个程序一个接一个地工作吗?这样我就可以使用另一个类似Python脚本的子进程来处理
exit
值。好的,我会问相应的同志,看看他想要什么。@Rudziankoŭ一个接一个,我做的一个是检查网页内容是否改变,另一个是修改本地数据库。