Consider the following code:
class Test:
def __init__(self):
self._stuff = []
def addStuff(self, what):
self._stuff.append(what)
stuff.append(what)
def addStuff(what):
stuff.append(what)
stuff = ['item1', 'item2', 'item3']
addStuff('stuff1')
Test().addStuff('stuff2')
print stuff # ['item1', 'item2', 'item3', 'stuff1', 'stuff2']
This works perfectly fine and has the intended result. But, coming from Java, I feel compelled to do this:
class Test:
def __init__(self):
self._stuff = []
def addStuff(self, stuff, what):
self._stuff.append(what)
stuff.append(what)
def addStuff(stuff, what):
stuff.append(what)
stuff = ['item1', 'item2', 'item3']
addStuff(stuff, 'stuff1')
Test().addStuff(stuff, 'stuff2')
print stuff # ['item1', 'item2', 'item3', 'stuff1', 'stuff2']
The result is the same. Is there any real differences/benefits between the two? Which one is considered better practice/more Pythonic?