提问人:Thaer Alem 提问时间:10/17/2022 最后编辑:Abhishek RaiThaer Alem 更新时间:10/17/2022 访问量:43
textwrap 中的函数(预期类型为“str”,而是得到“set[int | object]')
function in textwrap (Expected type 'str', got 'set[int | object]' instead)
问:
我有这个函数,但我收到这个错误。我已经尝试过,但无法解决这个问题。
size -= len(prefix)
if size % 2:
size -= 1
return '\n'.join([prefix + line for line in textwrap.wrap({size, string})])
答:
0赞
John M.
10/17/2022
#1
看起来你正在尝试做这样的事情:
import textwrap
s = 'abcdefghijklmnopqrstuvwxyz'
prefix = '>>> '
desired_width = 15
width_without_prefix = desired_width - len(prefix)
print('\n'.join(prefix + l for l in textwrap.wrap(s, width_without_prefix)))
返回:
>>> abcdefghijk
>>> lmnopqrstuv
>>> wxyz
但是,您将作为参数传递给 textwrap.wrap 方法,而 wrap 方法要求第一个参数为字符串:{size, string}
textwrap.wrap(text, width=70, *, initial_indent='', subsequent_indent=''
为了说明这一点,我们可以检查您正在传递的对象的类型(这是一个集合对象):
v = {s, width_without_prefix}
print(type(v))
返回。<class 'set'>
碰巧的是,如果您使用 textwrap.fill
而不是 :wrap
print(textwrap.fill(s, initial_indent=prefix, subsequent_indent=prefix, width=desired_width))
评论
{size,string}