How can I define a function with default parameter values and optional parameters in Python?
本问题已经有最佳答案,请猛点这里访问。
我想定义一个函数,输入参数可以省略或有一个默认值。
我有这个功能:
1 2 3 4 5 6 | 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) |
我要使
我该怎么做?谢谢您。
不能在Python中使函数参数成为可选的,但可以为它们提供默认值。所以:
1 2 | def nearxy(x, y, x0=0, y0=0, z=None): ... |
这使得
假设
1 2 | def nearxy(x, y, x0 = 0, y0 = 0, z = None): ... |
检查
将默认值设为X0、Y0,如下所示,如果Z也是可选的:
1 2 3 4 5 6 7 | 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) |
呼叫:
1 | nearxy(1,2) |
如果只想指定Z:
1 | nearxy(1,2,z=3) |
…
希望这有帮助
若要指定默认值,请使用"="定义参数,然后定义该值。
指定默认值的参数是可选参数。
例如,如果希望
1 2 3 4 5 6 | 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默认参数值。