62414


PowershellからPython(ver.3.8.1)のdefに引数を渡して実行したいのですが、  
うまく渡すことができません。  
今回、初めてPythonを使います。  
テストで下記のような簡単な関数を作ってみました。  
実行すると

> NameError: name 'a' is not defined

というエラーが発生します。  
ご教示のほど、よろしくお願いします。

**calc.py**

[code]

    def add(a):
        return 10 + a
    
[/code]

**main.py**

[code]

    from calc import add
    Anser = add(a)
    print(Anser)
    
[/code]

**Powershell**

[code]

    $a = 5
    python.exe main.py $a
    
[/code]


CC BY-SA 4.0
2020-01-21T04:15:57.290
62413
2020-01-21T05:11:01.937
2020-01-21T04:34:04.900
32986
33013
question
python powershell
PowershellからPythonのdefに引数を渡したい


Powershellの変数とPythonの変数は全く別のものです。  
PowershellからPythonを呼び出した時には、コマンドライン引数を`sys.argv`などの命令で取得する必要があります。

また`sys.argv`は引数を文字列型の配列で保持していますので、値を適切な型にキャストします。  
`main.py`を下記のように修正すると動作するはずです。

[code]

    from calc import add
    import sys
    a = int(sys.argv[1])
    Anser = add(a)
    print(Anser)
    
[/code]


CC BY-SA 4.0
2020-01-21T05:11:01.937
62414
2020-01-21T05:11:01.937
9820
62413
answer