Итак, я знаю, что на геттерах и сеттерах есть много вопросов, но я не мог найти что-то точно так же, как мой вопрос. Мне было интересно, изменили ли люди использование get/set в зависимости от разных языков. Я начал учиться на C++ и учился использовать геттеры и сеттеры. Это то, что я понимаю:Использование геттеров и сеттеров для разных языков программирования
В C++ (и Java?) Переменная может быть общедоступной или частной, но мы не можем иметь микс. Например, я не могу иметь переменную только для чтения, которая все еще может быть изменена внутри класса. Он либо является общедоступным (может читать и изменять его), либо все частные (не могут читать и изменять только внутри класса). Из-за этого (и, возможно, других причин) мы используем геттеры и сеттеры.
В MATLAB я могу управлять свойствами «setaccess» и «getaccess» переменных, чтобы я мог делать вещи только для чтения (может напрямую обращаться к свойству, но не могу его перезаписать). В этом случае я не чувствую, что мне нужен геттер, потому что я могу просто сделать class.property.
Кроме того, в Python считается, что «Pythonic» не использует геттеры/сеттеры и только при необходимости помещает вещи в свойства. Я действительно не понимаю, почему его ОК, чтобы иметь все публичные переменные в Python, потому что это противоречит тому, что я узнал, когда начал с C++.
Мне просто интересно, что думают другие люди. Будете ли вы использовать геттеры и сеттеры для всех языков? Вы бы использовали его только для C++/Java и выполняли прямой доступ в MATLAB и Python (что я сейчас делаю)? Второй вариант считается плохим? Для моих целей я имею в виду только простые геттеры и сеттеры (просто верните/установите значение и ничего не делайте).
Спасибо!
И не забывайте о свойствах C# ... – FrustratedWithFormsDesigner
Возможный ответ: http://stackoverflow.com/questions/1554546/when-and-how-to-use-the-builtin-function-property-in-python/1555169 # 1555169 – unutbu
Расширение такого рода обсуждений на «все языки» делает этот вопрос слишком широким, на мой взгляд. – gnovice