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
Run Code Online (Sandbox Code Playgroud)
大家好!我进入第128行,在replaceColorRamps中middletxt = colors.pop()
AttributeError:'filter'对象没有属性'pop'
我将此代码用于python 2.5,现在将其移植到3.4 ..
有人能帮我吗
mfi*_*tzp 11
你在Python 3中运行它吗?
在Python 2.7中filter()返回了一个list有.pop()功能的.
在Python 3.x中filter()返回一个filter不可迭代的对象.
在.pop()从filterPython 3开始之前,您需要将其转换为列表.所以添加例如
colors = list(colors)
Run Code Online (Sandbox Code Playgroud)
之后colors = filter(...).在Python 2.7中,这将没有任何效果,因此您的代码将继续在那里工作.有关更多信息和这些文档,请参阅此问题.
| 归档时间: |
|
| 查看次数: |
6132 次 |
| 最近记录: |