簡體   English   中英

無法從 Python 腳本中的 `if __name__ == "__main__"` 返回值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM