ValueError: не может переключиться с ручной спецификации поля на автоматическую нумерацию полей
Класс:
class Book(object):
def __init__(self, title, author):
self.title = title
self.author = author
def get_entry(self):
return "{0} by {1} on {}".format(self.title, self.author, self.press)
Создайте экземпляр моей книги:
In [72]: mybook = Book('HTML','Lee')
In [75]: mybook.title
Out[75]: 'HTML'
In [76]: mybook.author
Out[76]: 'Lee'
Обратите внимание, что я не инициализировал атрибут "self.press", а использовал его в методе get_entry. Прежде чем вводить данные.
mybook.press = 'Murach'
mybook.price = 'download'
До сих пор я могу указать все данные, вводимые с помощью vars
In [77]: vars(mybook)
Out[77]: {'author': 'Lee', 'title': 'HTML',...}
Я затрудняю много данных о моей книге в консоли. Попробуйте вызвать метод get_entry, сообщите об ошибках.
mybook.get_entry()
ValueError: cannot switch from manual field specification to automatic field numbering.
Все это происходит в интерактивном режиме на console.I лелеять данные занесены, далее рассол mybook
объекта в файле. Однако это неверно. Как спасти его в интерактивном режиме. или я должен перезапустить снова и снова.
Ответы
Ответ 1
return "{0} by {1} on {}".format(self.title, self.author, self.press)
это не работает. Если вы укажете позиции, вы должны сделать это до конца:
return "{0} by {1} on {2}".format(self.title, self.author, self.press)
В вашем случае лучше всего оставить python таким образом:
return "{} by {} on {}".format(self.title, self.author, self.press)