在Python 2.7.1中,我可以创建一个命名元组:
from collections import namedtuple
Test = namedtuple('Test', ['this', 'that'])
Run Code Online (Sandbox Code Playgroud)
我可以填充它:
my_test = Test(this=1, that=2)
Run Code Online (Sandbox Code Playgroud)
我可以这样打印:
print(my_test)
Run Code Online (Sandbox Code Playgroud)
测试(这= 1,那= 2)
但为什么我不能这样打印呢?
print("my_test = %r" % my_test)
Run Code Online (Sandbox Code Playgroud)
TypeError:并非在字符串格式化期间转换所有参数
编辑: 我应该知道在Python中使用字符串格式化打印元组
由于my_test是一个元组,它将为%元组中的每个项目寻找一种格式.为了解决这个问题,将它包装在另一个元组中,其中唯一的元素是my_test:
print("my_test = %r" % (my_test,))
Run Code Online (Sandbox Code Playgroud)
不要忘记逗号.