Pythonを勉強中です。ttp://www.python.jp/Zope/intro/instant_python_jpに、
class Basket:
  def __init__(self,contents=None):
    self.contents = contents or []

  def add(self,element):
    self.contents.append(element)

というコードがあったのですが、なぜPythonでは次のように書くことを選択しなかったのでしょうか?

class Basket
  def __init__(contents=None)
    contents = contents or []

  def add(element)
    contents.append(element)

もちろん、':'を付けることやselfが必要なのは、Pythonのお約束なんだろうなということはわかるのですが、何か理由があるなら知りたいのです。