2016-10-13 23 views
0

私はいくつかの関数を実装したpythonスクリプトを持っていますが、毎回どの関数を使うのかという点で柔軟になりたいです。私がPythonスクリプトを実行するとき、私は自分の関数を実行するための "フラグ"として立ついくつかの引数を渡したいと思うでしょう。 MATLABで Pythonスクリプトに引数を渡す方法は、MATLAB関数スクリプトと似ていますか?

は次のようになります:

metrics(1,0) 

のPythonで私は

を使用してみました:私は(例えば)でコマンドウィンドウから呼び出す

function metrics(Min, Max) 
%UNTITLED Summary of this function goes here 
% Detailed explanation goes here 
x = [1,2,3,4,5,5]; 

if (Min==1) 
    min(x) 
else 
    disp('something') 
end 

if (Max==1) 
    max(x) 
else 
    disp('else') 
end 

end 

デフメトリック(最小、最大)

argparse()

os.system( "metrics.py 1,1")

Pythonで呼び出すMATLAB関数を転置する方法任意の提案シェル(私は問題に関してアナコンダのスパイダーを使用しています)?

+0

あなたは(ウィンドウがプロンプトまたはLinuxシェルコマンドなど)やPythonのシェルからコマンドラインから関数を呼び出すしたいですか? MATLABコマンドウィンドウに相当するのは、コマンドラインではなくPythonシェルです。 – TheBlackCat

+0

@ TheBlackCat Pythonシェル、私の悪い。 – Roxanne

+0

質問を編集してください。それは重複として不適切にマークされていました。 – TheBlackCat

答えて

3

MATLABと同じように、結果を直接使用することができます。引数を解析する引数は、Pythonシェルからではなく、システムコマンドプロンプトまたはシェルからpythonスクリプトを呼び出すためのものです。やる、Pythonやipythonシェルから、その後

def metrics(minval, maxval): 
    """UNTITLED Summary of this function goes here 

    Detailed explanation goes here. 
    """ 
    x = [1, 2, 3, 4, 5, 5] 

    if minval: 
     print(min(x)) 
    else: 
     print('something') 

    if maxval: 
     print(max(x)) 
    else: 
     print('else') 

::だからmyscript.pyのようなスクリプトファイルを持っている

>>> from myscript import metrics 
>>> metrics(1, 0) 

通常、PythonであなたがTrueFalseを使用することになりますが。また、引数名は組み込み関数と混同しすぎるので変更しましたが、Pythonでは== 1は必要ありません。その後、

def metrics(minval=False, maxval=False): 
    """UNTITLED Summary of this function goes here 

    Detailed explanation goes here. 
    """ 
    x = [1, 2, 3, 4, 5, 5] 

    if minval: 
     print(min(x)) 
    else: 
     print('something') 

    if maxval: 
     print(max(x)) 
    else: 
     print('else') 

また
>>> from myscript import metrics 
>>> matrics(True) 
>>> metrics(maxval=True) 

、Pythonがサポートしている基本的にif...else式である三元表現、と呼ばれるもの、あなたがこのような何かを行うことができますので、また、Pythonは、デフォルト引数をサポートしています。だから、この:

if maxval: 
     print(max(x)) 
    else: 
     print('else') 

は以下のように記述できます。

print(max(x) if maxval else 'else') 
関連する問題