【发布时间】:2014-05-29 06:29:18
【问题描述】:
我正在尝试将我的 Python 2.7 程序转换为使用 from __future__ import unicode_literals,但 pylint 对我大喊我不能将 unicode 字符串作为 __slots__ 成员。
你知道它是否真的有问题,或者__slots__ 实现的 unicode/string 是否相同?从 Python 的documentation 看来,任何不可变对象都可以,但我不确定。
示例代码:
from __future__ import unicode_literals
class Foo(object):
__slots__ = ('a', 'b')
def __init__(self, a, b):
self.a = a
self.b = b
foo = Foo(5,7)
print foo.a
print foo.b
Pylint 给出了这个错误信息:
a.py|4 col 18 error| [invalid-slots-object] Invalid object "u'a'" in __slots__, must contain only non empty strings [python/pylint]
但它似乎工作正常。
【问题讨论】:
-
您能否提供确切的错误消息,当在网络搜索中使用时不会出现任何有用的信息?另外,一些代码怎么样?然后,我相信 unicode 文字未来还提供了 'b' 前缀来显式指定字节字符串,以防万一。
-
它确实提供了 b'' str 符号来创建文字字符串对象,它确实解决了这个问题。谢谢! (我将编辑这个问题,以便对未来的搜索更有意义)
-
实际上,让这个问题更适合搜索是一件好事,但我想建议的是,您只需在网络搜索中抛出错误消息本身和“pylint”并检查您的问题是否之前没有回答。
-
已经做到了。不走运:)
标签: python python-2.7 pylint python-unicode