6 лет назад
Почему в Python метод sort() не возвращает self
Для начала о том, зачем вообще нужна конструкция return self. Обычно её используют, чтобы сделать возможным так называемый chaining, то есть код вида my_object.method().another_method().do_something(). Но, как мы видим из заголовка статьи, в стандартной библиотеке Python это не используется. Точнее, используется, но не всегда. Для меня этот факт выглядит вполне естественным, хотя я никогда не думал о причинах. А вот тех, кто больше привык с другим языкам программирования, это подбешивает. И все же, почему в Python разрешено делать line = line.strip().lower(), а line.reverse().sort() нельзя? Оказалось у Гвидо есть письмо на этот счет: мутирующие методы должны возвращать None...
Ссылки, сравнение объектов и управление памятью в Python: Shared References, == vs is, In-place изменения, Weak References
Python предоставляет мощные инструменты для работы с объектами и памятью, но их использование требует понимания тонкостей. В этой статье разберем, как переменные ссылаются на объекты, чем отличается сравнение через == и is, как работают in-place изменения и зачем нужны слабые ссылки. В Python переменные хранят ссылки на объекты в памяти. Если несколько переменных ссылаются на один и тот же объект, их называют shared references (общими ссылками). Это особенно важно для изменяемых (mutable) типов...
06:44
1,0×
00:00/06:44
454 тыс смотрели · 4 года назад