How can I define a function with default parameter values and optional parameters in Python?

前端 未结 4 1521
别跟我提以往
别跟我提以往 2021-01-14 23:29

I want to define a function to which the input parameters can be omitted or have a default value.

I have this function:

def nearxy(x,y,x0,y0,z):
   d         


        
相关标签:
4条回答
  • 2021-01-14 23:43

    give default values to x0,y0 like this and if z is optional also :

    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)
    

    call :

    nearxy(1,2)
    

    if you want only toassign z :

     nearxy(1,2,z=3)
    

    ....

    hope this helps

    0 讨论(0)
  • 2021-01-14 23:45
    def nearxy(x, y, x0 = 0, y0 = 0, z = None):
       ...
    

    Check if z is None to see if it has been omitted.

    0 讨论(0)
  • 2021-01-14 23:47

    To specify a default value, define the parameter with a '=' and then the value.

    An argument where a default value is specified is an optional argument.

    For example, if you wanted x0,y0, and z to have default values of 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)
    

    See http://docs.python.org/2/tutorial/controlflow.html#default-argument-values for more.

    0 讨论(0)
  • 2021-01-15 00:01

    You can't make function arguments optional in Python, but you can give them default values. So:

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

    That makes x0 and y0 have default values of 0, and z have a default value of None.

    Assuming None makes no sense as an actual value for z, you can then add logic in the function to do something with z only if it's not None.

    0 讨论(0)
提交回复
热议问题