Apr. 11th, 2022

Продолжаю изучать Пайтон.

Зачем?
Сказали, нужно переписать все с Perl на него, так как первый люди не понимают.

> python -c 'import this' | grep 'only one'
There should be one-- and preferably only one --obvious way to do it.

Но только начал изучать - сразу удивления и вопросы.

У объекта список искал метод len. Не нашёл.
Но нашёл функцию len, которая, как говорится, вызывает метод __len__.
При этом функция len - это объект, который имеет свои методы,
в том числе мето __call__:

>>> len.__call__([1,2,3])
3

То есть len - это len.__call__, который вызывает [1,2,3].__len__.

Но для встроенных типов len не делает таких вызовов, а просто сразу вернет значение с C структуры (CPython).

Говорят, это вторая причина почему так сделали.
Первая причина: Диктатору больше нравиться len(l), чем l.len().
Но злые языки поговаривают, что он не мог решить: метод или свойство, - поэтому выбрал функцию.

Или я капризничаю? Но ведь Пайтон позиционируется как простой язык легкий в обучении.
Як то кажуть "А ваша Галя балувана".

Profile

iamjaph

March 2025

S M T W T F S
      1
2345678
9101112131415
16171819 202122
23242526272829
3031     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 21st, 2025 12:10 am
Powered by Dreamwidth Studios