Python namedtupleで作成するオブジェクトにデフォルト値を設定する

__new__.__defaults__を使う。

[サンプルスクリプト] book.py

from collections import namedtuple as np

Book = np('Book', 'title, author')
Book.__new__.__defaults__ = (None, '不明')

book = Book()
print(book)

[実行結果]

$ python book.py
Book(title=None, author='不明')