вот от этого у меня так люто горел пердак когда я на питоне чот там для хобби-проекта писал для raspberry pi. в финале на питон было положено и все выполнено на плюсах.
Я, как не являюсь Питонистом, имею такую интуицию, что если некий объект не мутабелен, то для него просто не разрешено некое подмножество операций (разрешенных лишь для мутабельных объектов).
Скажем, у list есть метод .append, а у tuple - нет.
Поэтому, когда операция '+=' работает по-разному для разных типов объектов (пусть даже и один мутабелен, а другой нет), меня это напрягает и смущает.
У меня, кстати, есть затруднение, как объяснить все эти концепции сыну (Питон - первый язык, который мы учим). Я могу объяснить ему value-type как в языке С, я могу объяснить ему смысл reference, как в Java, но объяснить, как в Питоне значения типа str тоже являются reference, но при этом ведут себя как value, мне сложновато. То же самое, кстати, и типа int в Питоне касается.
Да что там я или сын... я думаю, на подобных вопросах бы посыпалось 90% студентов, которых я недавно интервьюировал на Питон-позицию.
Я не программист, поэтому, наверное, для меня все эти штуки не вызывают никакой сложности. Все логично) Не мне с вами спорить, честно говоря, но в питоне вроде все является объектом. Поэтому никакого value нет, везде сплошной reference - никаких исключений) Особенно нравится, что объектом является int, это очень круто когда байты добавляются в случае необходимости, и нет никакой надобности думать о максимальном значении числа.
Не понял, в чем смысл вашего примера с методом .append Если вам нужен такой метод для тупла - в чем проблема его нарисовать? Я думаю его нет, просто потому что никому это было не надо)
no subject
Date: 2022-05-28 05:13 pm (UTC)no subject
Date: 2022-05-28 05:26 pm (UTC)no subject
Date: 2022-05-28 05:30 pm (UTC)но плюсы всеж основа всего, и чот пайтон мне не зашел ваще. много там както через жеппу сделано.
no subject
Date: 2022-05-28 07:10 pm (UTC)даже много??? Например?
no subject
Date: 2022-05-28 08:11 pm (UTC)no subject
Date: 2022-05-29 10:55 am (UTC)Строки не мутабельны, отсюда такое поведение.
Лучше питона, имхо, еще ничего не придумали.
no subject
Date: 2022-05-29 01:09 pm (UTC)Я, как не являюсь Питонистом, имею такую интуицию, что если некий объект не мутабелен, то для него просто не разрешено некое подмножество операций (разрешенных лишь для мутабельных объектов).
Скажем, у list есть метод .append, а у tuple - нет.
Поэтому, когда операция '+=' работает по-разному для разных типов объектов (пусть даже и один мутабелен, а другой нет), меня это напрягает и смущает.
У меня, кстати, есть затруднение, как объяснить все эти концепции сыну (Питон - первый язык, который мы учим). Я могу объяснить ему value-type как в языке С, я могу объяснить ему смысл reference, как в Java, но объяснить, как в Питоне значения типа str тоже являются reference, но при этом ведут себя как value, мне сложновато. То же самое, кстати, и типа int в Питоне касается.
Да что там я или сын... я думаю, на подобных вопросах бы посыпалось 90% студентов, которых я недавно интервьюировал на Питон-позицию.
no subject
Date: 2022-05-29 01:21 pm (UTC)Не мне с вами спорить, честно говоря, но в питоне вроде все является объектом. Поэтому никакого value нет, везде сплошной reference - никаких исключений) Особенно нравится, что объектом является int, это очень круто когда байты добавляются в случае необходимости, и нет никакой надобности думать о максимальном значении числа.
no subject
Date: 2022-05-29 01:23 pm (UTC)Если вам нужен такой метод для тупла - в чем проблема его нарисовать? Я думаю его нет, просто потому что никому это было не надо)
no subject
Date: 2022-05-29 05:30 pm (UTC)проблема, рзумеется, в том, что в этом случае tuple перестаёт быть не мутабельным
no subject
Date: 2022-05-29 05:59 pm (UTC)впрочем спорить не буду)