2

入力パラメーターを省略したり、デフォルト値を設定したりできる関数を定義したいと考えています。

私はこの機能を持っています:

def nearxy(x,y,x0,y0,z):
   distance=[]
   for i in range(0,len(x)):   
   distance.append(abs(math.sqrt((x[i]-x0)**2+(y[i]-y0)**2)))
   ...
   return min(distance)

私はデフォルト値を作りx0、値を持たない場合はオプションにします。y0zz

どうやってやるの?ありがとうございました。

4

4 に答える 4

6

Pythonでは関数の引数をオプションにすることはできませんが、デフォルト値を指定することはできます。それで:

def nearxy(x, y, x0=0, y0=0, z=None):
    ...

これによりx0y0デフォルト値は0になりz、デフォルト値はになりますNone

Noneの実際の値として意味がないと仮定すると、関数にロジックを追加して、そうでない場合にのみz何かを実行できます。zNone

于 2013-02-07T16:34:17.677 に答える
4
def nearxy(x, y, x0 = 0, y0 = 0, z = None):
   ...

省略されているかどうかをz確認してください。None

于 2013-02-07T16:34:52.597 に答える
3

このようにx0、y0にデフォルト値を指定し、zがオプションの場合も:

def nearxy(x,y,x0=0,y0=0,z=None):
   distance=[]
   for i in range(0,len(x)):   
   distance.append(abs(math.sqrt((x[i]-x0)**2+(y[i]-y0)**2)))
   if z is not None:
        blah blah
   return min(distance)

電話 :

nearxy(1,2)

zのみを割り当てたい場合:

 nearxy(1,2,z=3)

...。

お役に立てれば

于 2013-02-07T16:36:56.583 に答える
2

デフォルト値を指定するには、パラメータを「=」で定義してから値を指定します。

デフォルト値が指定されている引数、オプションの引数です。

たとえば、x0y0、およびzのデフォルト値を 1、2、3 にしたい場合:

def nearxy(x,y,x0=1,y0=2,z=3):
   distance=[]
   for i in range(0,len(x)):   
       distance.append(abs(math.sqrt((x[i]-x0)**2+(y[i]-y0)**2)))
   ...
   return min(distance)

詳細については、 http://docs.python.org/2/tutorial/controlflow.html#default-argument-valuesを参照してください。

于 2013-02-07T16:35:10.503 に答える