我可以从对象本身获取用于构造Python 2.7 xrange的值吗?

use*_*783 5 python introspection range xrange python-2.7

If sslicePython中的一个对象,使用s = slice(start, stop, step)或者(在适当的上下文中)start:stop:step构造,用于构造的值s可以从slice对象本身获得s.start,s.stops.step.

类似的start,stop并且step成员可在range在Python 3.4 [对象Issue9896.例如,range(1, 4, 2).start == 1.

然而,Python 2.7版xrange的对象不具备start,stopstep成员.有没有其他方法可以获取用于构造xrange对象本身的值?

jlb*_*b83 3

它不漂亮,但你可以str解析xrange

>>> rr = xrange(1, 4, 2)
>>> str(rr)
'xrange(1, 5, 2)'
>>> start = str(rr).split('(')[1].split(',')[0]
>>> start
1
Run Code Online (Sandbox Code Playgroud)

ETC

请注意,max如果范围内指定了步骤,则无法通过这种方式可靠地找到 。例如,在上面的示例中,在表示中(1, 4, 2)变为。(1, 5, 2)str