Parámetros predeterminados del constructor en pyyaml

No he podido averiguar cómo hacerlo en la documentación de PyYAML. Quiero representar las clases de python que he definido en YAML, y tengo un valor predeterminado dado a un parámetro en el constructor si no está especificado en YAML. Por ejemplo

>>> class Test(yaml.YAMLObject):
...     yaml_tag = u"!Test"
...     def __init__(self, foo, bar=3):
...             self.foo = foo
...             self.bar = bar
...     def __repr__(self):
...             return "%s(foo=%r, bar=%r)" % (self.__class__.__name__, self.foo, self.bar)
... 
>>> yaml.load("""
... --- !Test
... foo: 5
... """)
Traceback (most recent call last):
  File "<stdin>", line 4, in <module>
  File "<stdin>", line 7, in __repr__
AttributeError: 'Test' object has no attribute 'bar'

Esperaba que crearía un objeto de prueba con barra = 3, pero supongo que omite mi constructor cuando crea el objeto. Si incluyo una asignación para la barra en el YAML, todo funciona como se esperaba:

>>> yaml.load("""
... --- !Test
... foo: 5
... bar: 42
... """)
Test(foo=5, bar=42)

Alguien sabe cómo puedo hacer que use un valor predeterminado?

Respuestas a la pregunta(2)

Su respuesta a la pregunta