join函数遇到的问题

来源:9-1 viewmodel意义的体现与filter函数的巧妙应用

autista

2018-04-22

class BookViewModel:
    def __init__(self, book):
        self.title = book['title'],
        self.publisher = book['publisher'],
        self.pages = book['pages'] or '',
        self.author = '、'.join(book['author']),
        self.price = book['price'],
        self.summary = book['summary'] or '',
        self.image = book['image']

    @property
    def intro(self):
        intros = filter(lambda x: True if x else False, [self.author, self.publisher, self.price])
        return ' / '.join(intros)

按照视频的写法,报错:

File "C:\Users\ts\PycharmProjects\fisher\app\view_models\book.py", line 42, in intro
return ' / '.join(intros)
TypeError: sequence item 0: expected str instance, tuple found

pycharm中调试可以看到,self.author, self.publisher, self.price格式都是tuple,所以报错,奇怪的的是,视频中确可以,也没看到老师的BookViewModel中对这3个数据做了类型处理~感觉很奇怪。

http://img.mukewang.com/szimg/5adc53ad0001ff9506190203.jpg

写回答

1回答

7七月

2018-04-23

为什么这个问题这么多人犯?想不明白,你是第七个了,python每行代码后面需要输入逗号?

0
1
autista
原来是hi手欠在init加了逗号~=。=
2018-04-23
共1条回复

Python Flask高级编程之从0到1开发《鱼书》精品项目

7月老师深入浅出剖析Flask核心机制,和你一起探讨Python高级编程

2751 学习 · 1277 问题

查看课程