2016-08-31 6 views
3

Python3:Что такое <класс 'Диапазон'>

string = range(10) 
print("{}".format(type(string))) 

Выход:

class 'range' 

Я просто любопытно об этом 'диапазоне' класса. Может ли кто-нибудь объяснить?

Но в python2:

Выход:

class 'list' 

Ну, это само пояснительная

ответ

2

В Python 2 range(val) производит экземпляр списка, simply a function. Таким образом type(range(10)) вернет class 'list'.

В Python 3, range эквивалентно xrange в Python 2 и возвращает экземпляр нового класса с именем range. Дополнительные изменения/различия между Python 2/3 см. PEP 3100.

1

Python 3 добавил новый класс range, чтобы эффективно обрабатывать «неизменяемую последовательность чисел» (аналогично Python 2's xrange). Python 2 не имеет такого класса диапазона, поэтому функция range просто возвращает список.

Смежные вопросы