Инкапсуляция
Инкапсуляция — ограничение доступа к составляющим объект компонентам (методам и переменным). Инкапсуляция делает некоторые из компонент доступными только внутри класса.
Инкапсуляция в Python работает лишь на уровне соглашения между программистами о том, какие атрибуты являются общедоступными, а какие — внутренними.
Одиночное подчеркивание в начале имени атрибута говорит о том, что переменная или метод не предназначен для использования вне методов класса, однако атрибут доступен по этому имени.
Двойное подчеркивание в начале имени атрибута даёт большую защиту: атрибут становится недоступным по этому имени. Однако полностью это не защищает, так как атрибут всё равно остаётся доступным под именем _ИмяКласса__ИмяАтрибута.
Инкапсуляция — ограничение доступа к составляющим объект компонентам (методам и переменным). Инкапсуляция делает некоторые из компонент доступными только внутри класса.
Инкапсуляция в Python работает лишь на уровне соглашения между программистами о том, какие атрибуты являются общедоступными, а какие — внутренними.
Одиночное подчеркивание в начале имени атрибута говорит о том, что переменная или метод не предназначен для использования вне методов класса, однако атрибут доступен по этому имени.
Двойное подчеркивание в начале имени атрибута даёт большую защиту: атрибут становится недоступным по этому имени. Однако полностью это не защищает, так как атрибут всё равно остаётся доступным под именем _ИмяКласса__ИмяАтрибута.
👍36
#Вопросы_с_собеседования
❓Что будет в результате выполнения данного кода?
Ответ:
Многие могут ошибочно предположить, что
Однако, в действительности новый пустой список по умолчанию создается только один раз при определении функции. И затем этот список последовательно используется всякий раз, когда функция вызывается без второго аргумента. Это происходит потому, что значения по умолчанию вычисляются при определении функции, а не при ее вызове.
Таким образом,
❓Что будет в результате выполнения данного кода?
Ответ:
list1 = [10, 'a']
list2 = [123]
list3 = [10, 'a']
Объяснение:Многие могут ошибочно предположить, что
list1
будет равен [10]
, а list3
будет равен ['a']
, думая, что всякий раз при вызове функции extendList
аргумент list
будет равен значению по умолчанию []
.Однако, в действительности новый пустой список по умолчанию создается только один раз при определении функции. И затем этот список последовательно используется всякий раз, когда функция вызывается без второго аргумента. Это происходит потому, что значения по умолчанию вычисляются при определении функции, а не при ее вызове.
Таким образом,
list1
и list3
имеют дело с одним и тем же списком по умолчанию, в то время как list2
использует пустой список, переданный ему во втором аргументе.👍24
Получаем информацию о системе своего компьютера с помощью Python
Получение системной информации для вашей системы может быть легко выполнено используемой операционной системой, скажем, Ubuntu. Но не будет ли забавно получить эту системную информацию с помощью скрипта Python?
Установка модуля -
Получение системной информации для вашей системы может быть легко выполнено используемой операционной системой, скажем, Ubuntu. Но не будет ли забавно получить эту системную информацию с помощью скрипта Python?
Установка модуля -
pip install platform
Подробнее можно почитать здесь.👍25🎉8🆒1
#Вопросы_с_собеседования
❓Что будет в результате выполнения данного кода?
Ответ:
Результатом выполнения данного кода будет
Это объясняется тем, что замыкания в Python работают по принципу позднего связывания. Это означает, что значения переменных, используемых в замыканиях, ищутся во время вызова внутренней функции. Поэтому, когда вызывается любая из функций, возвращаемых
❓Что будет в результате выполнения данного кода?
Ответ:
Результатом выполнения данного кода будет
[6, 6, 6, 6]
, а не [0, 2, 4, 6]
.Это объясняется тем, что замыкания в Python работают по принципу позднего связывания. Это означает, что значения переменных, используемых в замыканиях, ищутся во время вызова внутренней функции. Поэтому, когда вызывается любая из функций, возвращаемых
multipliers()
, значение i
ищется исключительно в области видимости этой функции в данный момент. А значение i
, вне зависимости от того, какая из функций вызывается, после завершения цикла for
всегда равно 3
. Таким образом, каждая возвращаемая функция умножает значение, которое ей передано, на 3
, а поскольку в приведенном выше коде передается значение 2
, все они возвращают значение 6
(то есть 3 x 2
).👍28🤔7
#Вопросы_с_собеседования
❓Какие нюансы есть в использовании чисел как ключей?
Числовые ключи в словарях подчиняются правилам сравнения чисел. Таким образом, int(1) и float(1.0) считаются одинаковым ключом. Однако из-за того, что значения типа float сохраняются приближенно, не рекомендуется использовать их в качестве ключей.
❓Какие нюансы есть в использовании чисел как ключей?
Числовые ключи в словарях подчиняются правилам сравнения чисел. Таким образом, int(1) и float(1.0) считаются одинаковым ключом. Однако из-за того, что значения типа float сохраняются приближенно, не рекомендуется использовать их в качестве ключей.
👍19🎉7
🎉29👍11😱3🤔2
8 технологий, которые должен знать каждый Python-разработчик
Джентльменский набор пайтон-разработчика, который пригодится вне зависимости от того, куда вы пойдете: в инжиниринг, машинное обучение или бэкенд-разработку.
Смотреть статью
Джентльменский набор пайтон-разработчика, который пригодится вне зависимости от того, куда вы пойдете: в инжиниринг, машинное обучение или бэкенд-разработку.
Смотреть статью
Библиотека программиста
🐍 8 технологий, которые должен знать каждый Python-разработчик
Джентльменский набор пайтон-разработчика, который пригодится вне зависимости от того, куда вы пойдете: в инжиниринг, машинное обучение или бэкенд-разработку.
👍19🔥5❤1
#Вопросы_с_собеседования
❓Что значит *args, **kwargs? И зачем нам их использовать?
Мы используем *args, когда неуверены, сколько аргументов будет передано функции, или если хотим передать сохраненный список или кортеж аргументов функции.
**kwargs используется, когда мы не знаем, сколько аргументов ключевых слов будет передано, а также он может быть использован для передачи значений словаря в качестве аргументов ключевых слов. Идентификаторы args и kwargs необязательны, вы можете изменить их на другие, типа *другой **пример, но лучше использовать имя по умолчанию.
❓Что значит *args, **kwargs? И зачем нам их использовать?
Мы используем *args, когда неуверены, сколько аргументов будет передано функции, или если хотим передать сохраненный список или кортеж аргументов функции.
**kwargs используется, когда мы не знаем, сколько аргументов ключевых слов будет передано, а также он может быть использован для передачи значений словаря в качестве аргументов ключевых слов. Идентификаторы args и kwargs необязательны, вы можете изменить их на другие, типа *другой **пример, но лучше использовать имя по умолчанию.
👍20🎉7🤔5
👍36🤔24🏆8🎉4😢3🍾2🆒2
Узнаем расстояние между городами
Геодезическое расстояние – это длина кратчайшего пути между двумя точками на любой поверхности Земли. В следующем примере мы покажем, как пользователь может вычислить геодезическое расстояние на основе данных широты и долготы.
В нашем примере мы узнаем, ято расстояние между городами Нью-Йорк и Техас 2507 километров.
Геодезическое расстояние – это длина кратчайшего пути между двумя точками на любой поверхности Земли. В следующем примере мы покажем, как пользователь может вычислить геодезическое расстояние на основе данных широты и долготы.
В нашем примере мы узнаем, ято расстояние между городами Нью-Йорк и Техас 2507 километров.
👍17❤4🎉2😱1
PyQt6 — полное руководство для новичков
PyQt — это библиотека Python для создания приложений с графическим интерфейсом с помощью инструментария Qt.
Смотреть статью
PyQt — это библиотека Python для создания приложений с графическим интерфейсом с помощью инструментария Qt.
Смотреть статью
Хабр
PyQt6 — полное руководство для новичков
К старту курса по разработке на Python делимся детальным руководством по работе с современным PyQt. Чтобы читать было удобнее, мы объединили несколько статей в одну: Первое приложение Слоты и сигналы...
🎉28👍9🍾3❤2
Узнаем в какой части света находится страна
countryinfo - модуль Python для возврата данных о странах, информации ISO и штатах/провинциях внутри них.
Установка пакета - pip install countryinfo.
Документацию пакета можно найти здесь.
countryinfo - модуль Python для возврата данных о странах, информации ISO и штатах/провинциях внутри них.
Установка пакета - pip install countryinfo.
Документацию пакета можно найти здесь.
👍24🎉5😱2❤1😢1
Кто быстрее создаёт списки в Python, list() или []
В процессе написания очередной программы задумался над тем, какой способ создания списков в Python работает быстрее. Большинство моих знакомых используют квадратные скобки. А некоторые совсем забыли о существовании функции list(). Предлагаю Вашему вниманию небольшое исследование.
Смотреть статью
В процессе написания очередной программы задумался над тем, какой способ создания списков в Python работает быстрее. Большинство моих знакомых используют квадратные скобки. А некоторые совсем забыли о существовании функции list(). Предлагаю Вашему вниманию небольшое исследование.
Смотреть статью
Хабр
Кто быстрее создаёт списки в Python, list() или []
В процессе написания очередной программы задумался над тем, какой способ создания списков в Python работает быстрее. Большинство моих знакомых используют квадратные скобки. А некоторые совсем забыли о...
👍11😢1
#Вопросы_с_собеседования
❓Что будет в результате выполнения данного кода?
Ответ:
Данный код выдаст в виде результата пустой список [], а ошибка IndexError не возникнет.
Как известно, попытка доступа к элементу списка с использованием индекса, превышающего число элементов (например, операция list[10] в списке выше), приводит к ошибке IndexError. Однако, попытка получить доступ к срезу списка с начальным индексом, превышающем количество элементов в списке, не приведет к IndexError и просто вернет пустой список.
Особенно неприятным это обстоятельство делает то, что оно может привести к ошибкам, которые действительно трудно отследить, поскольку во время выполнения кода не возникает никаких ошибок.
❓Что будет в результате выполнения данного кода?
Ответ:
Как известно, попытка доступа к элементу списка с использованием индекса, превышающего число элементов (например, операция list[10] в списке выше), приводит к ошибке IndexError. Однако, попытка получить доступ к срезу списка с начальным индексом, превышающем количество элементов в списке, не приведет к IndexError и просто вернет пустой список.
Особенно неприятным это обстоятельство делает то, что оно может привести к ошибкам, которые действительно трудно отследить, поскольку во время выполнения кода не возникает никаких ошибок.
👍46🎉9😱7❤1🔥1
Получаем формы сайта
С помощью пакета mechanize легко получить формы сайта для последующего входа в аккаунт или других действий.
Создаём объект браузера и с помощью функции forms возвращаем все формы.
Документация пакета находится здесь.
С помощью пакета mechanize легко получить формы сайта для последующего входа в аккаунт или других действий.
Создаём объект браузера и с помощью функции forms возвращаем все формы.
Документация пакета находится здесь.
👍23