Writing Functions in Python
Shayne Miel
Software Architect @ Duo Security
def foo(x): x[0] = 99
my_list = [1, 2, 3]
foo(my_list)
print(my_list)
[99, 2, 3]
def bar(x): x = x + 90
my_var = 3
bar(my_var)
print(my_var)
3
a = [1, 2, 3]
a = [1, 2, 3]
b = a
a = [1, 2, 3]
b = a
a.append(4)
print(b)
[1, 2, 3, 4]
a = [1, 2, 3]
b = a
a.append(4)
print(b)
[1, 2, 3, 4]
b.append(5)
print(a)
[1, 2, 3, 4, 5]
a = [1, 2, 3]
b = a
a.append(4)
print(b)
[1, 2, 3, 4]
b.append(5)
print(a)
[1, 2, 3, 4, 5]
a = 42
def foo(x):
x[0] = 99
def foo(x): x[0] = 99
my_list = [1, 2, 3]
def foo(x): x[0] = 99
my_list = [1, 2, 3]
foo(my_list)
def foo(x): x[0] = 99
my_list = [1, 2, 3]
foo(my_list)
print(my_list)
[99, 2, 3]
def bar(x): x = x + 90
my_var = 3
def bar(x): x = x + 90
my_var = 3
bar(my_var)
def bar(x): x = x + 90
my_var = 3
bar(my_var)
my_var
3
Immutable
Mutable
def foo(var=[]): var.append(1) return var
foo()
[1]
foo()
[1, 1]
def foo(var=None): if var is None: var = [] var.append(1) return var
foo()
[1]
foo()
[1]
Writing Functions in Python