In [1]:
def func_default(arg1, arg2='default_x', arg3='default_y'):
print(arg1)
print(arg2)
print(arg3)
In [2]:
func_default('a')
In [3]:
func_default('a', 'b')
In [4]:
func_default('a', arg3='c')
In [5]:
# def func_default_error(arg2='default_a', arg3='default_b', arg1):
# print(arg1)
# print(arg2)
# SyntaxError: non-default argument follows default argument
In [6]:
def func_default_list(l=[0, 1, 2], v=3):
l.append(v)
print(l)
In [7]:
func_default_list([0, 0, 0], 100)
In [8]:
func_default_list()
In [9]:
func_default_list()
In [10]:
func_default_list()
In [11]:
def func_default_dict(d={'default': 0}, k='new', v=100):
d[k] = v
print(d)
In [12]:
func_default_dict()
In [13]:
func_default_dict(k='new2', v=200)
In [14]:
def func_default_list_none(l=None, v=3):
if l is None:
l = [0, 1, 2]
l.append(v)
print(l)
In [15]:
func_default_list_none()
In [16]:
func_default_list_none()