我试图将我的Python2.7程序转换为使用from __future__ import unicode_literals,但是让pylint对我大喊大叫,说我不能将unicode字符串作为__slots__成员。
您知道它是否真的带来了问题,或者unicode/string对于__slots__实现也是一样的吗?从Python的文档中可以看出,任何不变的对象都可以,但我不确定。
示例代码:
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.bPylint给出了以下错误消息:
a.py|4 col 18 error| [invalid-slots-object] Invalid object "u'a'" in __slots__, must contain only non empty strings [python/pylint]但看起来挺好的。
发布于 2014-06-01 18:03:43
这是一个自我回答,最初由提问者粘贴到提问体中.
在导入unicode_literals时,可以使用b''表示法来声明非unicode字符串,它们正是__slots__所需要的。
https://stackoverflow.com/questions/23927098
复制相似问题