#!/usr/bin/env python3

# list argument with empty default
# the default is however updated at every call
def spammer(bag = []):
    bag.append("spam")
    return bag

# default is None, viz list does not exists
# None is an immutable object, the empty list [] not
def noProblem(bag = None):
    if bag is None:         # check if list exists
      bag = []
    bag.append("no spam")
    return bag

print("****************")
print("using \"bag = []\"")
print("****************")
print(spammer())
print(spammer())
print(spammer())
myBag = spammer()
myBag.clear()
print(myBag)
myBag = ["no"]
print(myBag)
spammer(myBag)
print(myBag)
spammer(myBag)
print(myBag)

print()
print("******************")
print("using \"bag = None\"")
print("******************")
print(noProblem())
print(noProblem())
print(noProblem())
