2012-06-29 4 views
3

Мне интересно, какие могут быть последствия повторного использования имен встроенных типов или функций. Чтобы проиллюстрировать это, прочтите следующий пример:Последствия затенения встроенных типов/функций

list() - это встроенная функция. Если я создаю еще один метод list(), я предполагаю, что он переопределит исходный, так что мина будет выполнена вместо встроенной. Но что произойдет, если я сделаю list=[a,z,e,r,t,y]? Есть ли риск для встроенного типа list или list()?

Я знаю, что это нехорошо делать. Но моя цель состоит только в том, чтобы понять, что может произойти в этих случаях ...

ответ

4

Нет, вы не повредите встроенный list в любом случае. Всего будет confuse.

Вы все еще можете получить оригинал list через __builtin__.list. Присвоение __builtin__.list будет, однако, разбито на list.

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