【发布时间】:2013-07-19 02:42:50
【问题描述】:
我创建了一个子类 ConfigParser.SafeConfigParser 来实现无节配置文件的类。我遇到的问题是,与我期望 __getitem__ 的响应方式相比,我得到了一个意想不到的切片类型:
import ConfigParser
class foo(ConfigParser.SafeConfigParser):
def __getitem__(self, option):
return option
class bar(object):
def __getitem__(self,option):
return option
a = foo()
b = bar()
print a[:]
print b[:]
我得到的答复让我感到困惑:
slice(0, 2147483647, None)
slice(None, None, None)
在这两种情况下,我都期望(None, None, None)。我可以猜它的行为很熟悉——例如,如果我正在使用一个简单的list() 切片操作——但这使得通过if option.start is None 确定用户的意图变得特别困难,但失败了在前一种情况下。
SafeConfigParser 的哪一部分正在改变这种行为,我可以做些什么来接收(None, None, None) 而不是(0, sys.maxint, None)
【问题讨论】:
标签: python python-2.7 subclass slice