colorramps = re.split("#ramp\[([0-9a-fA-F]{6})\](.+?)#rampend\[([0-9a-fA-F]{6})\]", message)
colorramps.reverse()
if len(colorramps) > 1:
starttext = colorramps.pop()
starttext = starttext.replace("$message", getSaveString(text))
starttext = starttext.replace("$playername", getSaveString(username), 1)
complete = [starttext]
while len(colorramps):
startcolor = getColor(colorramps.pop())
colors = filter(None, re.split("#over\[([0-9a-fA-F]{6})\]", colorramps.pop()))
middletxt = colors.pop()
endcolor = getColor(colorramps.pop())
middletxt = middletxt.replace("$message", getSaveString(text))
middletxt = middletxt.replace("$playername", getSaveString(username), 1)
middletxt = middletxt.decode("utf")
if len(colors) > 0:
colors = map(getColor, colors)
colors.append(endcolor)
middletxt = rangeOverColors(middletxt, startcolor, colors)
else:
middletxt = getRangeString(middletxt, startcolor, endcolor)
middletxt = middletxt.encode("utf")
complete.append(middletxt)
endtext = colorramps.pop()
endtext = endtext.replace("$message", getSaveString(text))
endtext = endtext.replace("$playername", getSaveString(username), 1)
complete.append(endtext)
message = "".join(complete)
else:
message = message.replace("$message", getSaveString(text))
message = message.replace("$playername", getSaveString(username), 1)
return message
大家好! 我进入第128行,在replaceColorRamps middletxt=colors.pop()
AttributeError:“filter”对象没有“pop”属性
我在Python2.5中使用了这段代码,现在我将它移植到3.4。。
有人能帮我吗
你在Python3中运行这个程序吗?
在Python 2.7中,
filter()
返回了一个list
,它具有.pop()
函数。在Python 3.x中,
filter()
返回一个不返回的filter
iterable对象。在Python 3中的
filter
中可以.pop()
之前,需要将其转换为列表。所以加上在
colors = filter(...)
行之后。在Python2.7中,这不会有任何效果,因此您的代码将继续在那里工作。见this question for more information 和these docs。相关问题 更多 >
编程相关推荐