簡體   English   中英

python中的def和返回函數

[英]Def and Return Function in python

我在 Python 中的 def 和 return 函數有一些問題。 在我的程序頂部,我定義了:

from subprogram import subprogram

然后我定義了包含我想要返回的值的 def:

def subprogram(ssh, x_off, y_off, data_array, i, j):
    if j==1:
        print('shutdonw X')
        # Run command.
        ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(x_off)
        var_colonna_1 = data_array[i][j]
        return var_colonna_1
        print(var_colonna_1)
    
    if j==2:
        print('shutdown Y')
        # Run command.
        ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(y_off)
        var_colonna_2 = data_array[i][j]
        return var_colonna_2

然后在主程序中將其調用為:

for j in range(5, lunghezza_colonna):
  if data_array[i][j] == 'V':
      subprogram(ssh, x_off, y_off, data_array, i, j)
print(var_colonna_1)

我期待每次調用subprogram時,它都會返回var_colonna_1var_colonna_2 ,但是我在打印var_colonna_1時看到的值始終為 0,即使在內部執行其他命令(因此 X 和 Y 設置為關閉) . 你能幫助我嗎? 我沒有看到我的編碼錯誤。

該函數不返回變量,只返回它的值。

如果你想在 var_colonna_1 上獲得返回值,你應該分配它,正如 Sayse 所說,你應該這樣做:

var_colonna_1 = subprogram(ssh, x_off, y_off, data_array, i, j)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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