[英]Cannot return value from `if __name__ == "__main__"` in a Python script?
I am trying to collect output of a Python script in a bash script where the Python script is called like below:
#!/bin/bash
outputString=$(./test.py 2>&1)
echo $outputString
但是, if __name__ == "__main__"
,我似乎无法从该块返回?
#!/usr/bin/env python
import sys
def my_method():
return 'somethng'
if __name__ == "__main__":
value = my_method()
return value
运行test.sh
报错如下:
File "./test.py", line 11 return value SyntaxError: 'return' outside function
我究竟做错了什么? if __name__ == "__main__"
,我不能从内部返回?
您可以像这样从 python (或任何其他程序)获取退出值
#!/bin/bash
./test.py 2>&1
echo $?
如果出现错误,您可以使用不同于 0 的值退出
#!/usr/bin/env python
import sys
def my_method():
return 'somethng'
if __name__ == "__main__":
print(my_method())
sys.exit(0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.