我创建了一个子类 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)