哥们,我为了看懂你的代码又手打了一遍,结果看的还是蒙蒙的。说点个人看法哈请别介意,你这写法像是在炫技,结果把自己给绕晕了。比如那个mapper函数的作用究竟是要干什么,通过映射把res的数据一次性全部给Book的类变量赋值?这么奇怪的操作还不如直接实例化一个对象,然后通过循环把res中的每本书的数据依次赋给对象的实例变量(有点生成器的感觉),这样还能节省内存资源。
Python之禅怎么说的?简洁胜于复杂。
完全不需要BookCollection这个类,也不需要mapper映射。一个循环搞定:
for i in res:
book = Book()
book.name = i['name']
book.author = i['author']
book.date_of_production = i['date']
book.description()