Аргументы по умолчанию равны "None" и если не записать одну то надо чтобы вместо "None" было просто пустой пробел
class Book:
def __init__(self, title = None, author = None, edition = None):
self.title = title
self.author = author
self.edition = edition
def display(self):
#a = self.edition
#if filter(None.__ne__, a):
# a = ' '
print("%-30s%-20s%5s" % ("Title", "Author", "Edition"))
print('-'*58)
print("%-30s%-20s%5s" % (self.title, self.author, self.edition ))
book = Book('Mobi-Dick', 'Melville', '1851')
book.display()