Python 字符串格式化自定义对象
我有一个基本的购物车。我正在尝试学习字符串格式--自定义对象: 我想做的是:Python 字符串格式化自定义对象,python,string-formatting,python-3.6,Python,String Formatting,Python 3.6,我有一个基本的购物车。我正在尝试学习字符串格式--自定义对象: 我想做的是: print("Your cart contains: {0:short}".format(cart)) 应返回: Your cart contains: cucumbers, tissues, tomatoes, toothpaste 我的格式方法错误。我不断得到: Traceback (most recent call last): File "C:/Users/Mark/PycharmProjects/ma
print("Your cart contains: {0:short}".format(cart))
应返回:
Your cart contains: cucumbers, tissues, tomatoes, toothpaste
我的格式方法错误。我不断得到:
Traceback (most recent call last):
File "C:/Users/Mark/PycharmProjects/main/main.py", line 54, in <module>
print("Your cart contains: {0:short}".format(cart))
TypeError: __format__ must return a str, not NoneType
问题出在您的
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
实现中:
def __format__(self, format_type):
if format == 'short':
return ', '.join(item.name for item in self.content)
- 问题1:
如果格式=='short':
-应为--------------^-----------
格式\u类型
- 问题2:
)-在…(item.name
类上没有属性item
name
正确的定义:
def __format__(self, format_type):
if format_type == 'short':
return ', '.join(i.product_name for i in self.content.values())
然后,行
print(“您的购物车包含:{0:short}”。格式(购物车))
将输出:
Your cart contains: Cucumbers, Tissues, Tomatoes, Toothpaste
Your cart contains: Cucumbers, Tissues, Tomatoes, Toothpaste