2017-02-20 4 views
0

Когда я создаю list используя ниже заявлениеPython 3 встроенных функций и классов

a = list('jane')

Am звоню встроенный list функции или класса list создание экземпляра Питона.

Мое понимание - мы создаем класс list, пропустив 'jane' как аргумент.

Однако в документации Python https://docs.python.org/3/library/functions.html указано, что list() является встроенной функцией.

ответ

1

Документы явно говорят:

class list([iterable])

Вместо того, чтобы функция, list фактически изменяемый тип последовательности

Вы можете легко проверить, что:

>>> type(list) 
type 

если это был fu nction, function будет выход, полученный с помощью type.

Вы создаете объект list так же, как если бы вы создали свой собственный класс и назвали его. type__call__ по существу получает вызов и настраивает ваш экземпляр так, хотя они не являются функцией как таковой, они могут быть вызваны.


Тот факт, что они перечислены в этом конкретном разделе, вероятно, для удобства, это может привести к путанице, но прочитав его описание, как предполагается, неоднозначность этого.

1

Ваш вопрос отвечает на very documentation page you mention:

class list([iterable])
Вместо того, чтобы функция, list фактически изменяемый тип последовательности, как описано в Lists и Sequence Types — list, tuple, range.

В Python оба класса и функции вызываются, поэтому на практике вы можете относиться к ним одинаково.

0

Вы создаете экземпляр списка.

class list([iterable]) Вместо того, чтобы функция, список фактически является изменяемый тип последовательности, как описано в списках и типов последовательности - список, кортеж, диапазон.

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

  • Нет связанных вопросов^_^