Наш второй День открытых дверей курса "Администратор Linux". Программа курса, карьера, вопросы - обо всём этом расскажет наш преподаватель Дмитрий Молчанов, а так же проведёт розыгрыш двух бесплатных мест.
Заходите:
https://www.youtube.com/channel/UCetgtvy93o3i3CvyGXKFU3g/live
Заходите:
https://www.youtube.com/channel/UCetgtvy93o3i3CvyGXKFU3g/live
YouTube
OTUS IT Онлайн - образование
OTUS – масштабный образовательный IT-портал. 4955473489
Наш канал предлагает более 5000+ вебинаров по программированию, разработке, аналитике, машинному обучению и менеджменту — бесплатно получайте актуальные знания, которые точно понадобятся в 2025 году.…
Наш канал предлагает более 5000+ вебинаров по программированию, разработке, аналитике, машинному обучению и менеджменту — бесплатно получайте актуальные знания, которые точно понадобятся в 2025 году.…
Сегодня у нас стартует целых два Дня открытых дверей: "Руководитель IT подразделения" и "Разработчик BigData". Каждый курс представят его преподаватели: Игорь Гутник и Ксения Стройкова, покажем и расскажем программу, перспективу и проведём розыгрыши бесплатных мест. Присоединяйтесь:
ПОЗДРАВЛЯЕМ СЛУШАТЕЛЕЙ КУРСА "АДМИНИСТРАТОР LINUX" С ПЕРВЫМ ДНЕМ ЗАНЯТИЙ!
Сегодня, 27 октября, берет свой старт долгожданный курс "Администратор Linux" под руководством преподавателей: Дмитрия Молчанова и Григория Ожегова. Впереди вас ждут пять месяцев увлекательной учебы наполненной настоящими открытиями в области администрирования Linux. Комплексная программа подготовки, сочетающая в себе, как теорию, так и практические занятия позволяет подготовить настоящих профи по настройке и администрированию Linux.
ВАЖНО! Те, кто рассматривал обучение "Администратор Linux" в группу запуска 27 октября, спешим напомнить, что сегодня последний день, когда вы можете присоединиться к обучению. Осталось всего 2 места. Торопитесь, регистрация будет закрыта сегодня.
Вступить в ряды администраторов Linux можно тут https://otus.pw/sABazB5E/
Сегодня, 27 октября, берет свой старт долгожданный курс "Администратор Linux" под руководством преподавателей: Дмитрия Молчанова и Григория Ожегова. Впереди вас ждут пять месяцев увлекательной учебы наполненной настоящими открытиями в области администрирования Linux. Комплексная программа подготовки, сочетающая в себе, как теорию, так и практические занятия позволяет подготовить настоящих профи по настройке и администрированию Linux.
ВАЖНО! Те, кто рассматривал обучение "Администратор Linux" в группу запуска 27 октября, спешим напомнить, что сегодня последний день, когда вы можете присоединиться к обучению. Осталось всего 2 места. Торопитесь, регистрация будет закрыта сегодня.
Вступить в ряды администраторов Linux можно тут https://otus.pw/sABazB5E/
OTUS: Администратор Linux
Профессиональные онлайн курсы для разработчиков
Приглашаем всех на День открытых дверей по курсу "Разработчик BigData"! Послезавтра уже начнутся занятия и поэтому не упустите свой шанс задать вопросы преподавателю, последить за розыгрышом и вообще собраться в компании интересных людей!
Заходите: https://www.youtube.com/channel/UCetgtvy93o3i3CvyGXKFU3g/live
Заходите: https://www.youtube.com/channel/UCetgtvy93o3i3CvyGXKFU3g/live
YouTube
OTUS IT Онлайн - образование
OTUS – масштабный образовательный IT-портал. 4955473489
Наш канал предлагает более 5000+ вебинаров по программированию, разработке, аналитике, машинному обучению и менеджменту — бесплатно получайте актуальные знания, которые точно понадобятся в 2025 году.…
Наш канал предлагает более 5000+ вебинаров по программированию, разработке, аналитике, машинному обучению и менеджменту — бесплатно получайте актуальные знания, которые точно понадобятся в 2025 году.…
Последние пару лет о Big Data говорят все. IT-компании регулярно размещают вакансии Big Data Developer. Но далеко не все понимают, как возникло это направление и какие проблемы оно на самом деле решает. Как обрабатывают терабайты информации и какие технологии на это способны? Что нужно от Big Data бизнесу и какие решения сейчас успешно применяют для анализа больших объемов данных? Посвятите свое время обучению, чтобы получить ответы на все эти вопросы.
Многие компании уже хорошо знакомы с термином "Big Data". Согласно последнему исследованию Gartner 73% опрошенных компаний уже инвестировали либо намерены инвестировать в Big Data, в прошлом году эта цифра была равна 64%. Сегодня, 2 ноября 2017 года, стартует курс обучения "Разработчик BigData". Приглашаем пройти онлайн тестирование https://goo.gl/tPzir4
Многие компании уже хорошо знакомы с термином "Big Data". Согласно последнему исследованию Gartner 73% опрошенных компаний уже инвестировали либо намерены инвестировать в Big Data, в прошлом году эта цифра была равна 64%. Сегодня, 2 ноября 2017 года, стартует курс обучения "Разработчик BigData". Приглашаем пройти онлайн тестирование https://goo.gl/tPzir4
OTUS: Разработчик BigData
Профессиональные онлайн курсы для разработчиков
В последнее время идет настоящая охота на Java-разработчиков по всему миру. Спрос на разработчиков каждый год растёт примерно на 10-15 процентов, а база для образования не справляется. И потребности растут, и текучка большая: ведь в какой-то момент выяснилось, что Java позволяет наиболее индустриально разрабатывать код. Как профессионально расти и стать желанной целью? Студент, который пройдет обучение Java в OTUS, может получить в Москве больше, чем действующий разработчик. Сегодня, в рамках Дня Открытых Дверей Виталий Чибриков преподаватель курса «Разработчик Java» расскажет, какие есть варианты карьеры в России у вас, если вы уже знаете Java и у вас есть несколько месяцев, чтобы перейти на новый язык и новую среду разработки.
Прямая трансляция начнется в 20:00 по московскому времени. Подключиться https://goo.gl/eRCqsi
И на десерт список компаний, в каждой из которых, работают свыше 200 Java разработчиков: Amazon, Oracle, Azul, Одноклассники, Deutsche Bank, Одноклассники, Luxoft , Twitter, Facebook, LinkedIn, JetBrains и другие.
Но, не спешите подавать свои резюме в эти компании, вначале мы приглашаем вас пройти тестирование https://goo.gl/MFqmQN
Прямая трансляция начнется в 20:00 по московскому времени. Подключиться https://goo.gl/eRCqsi
И на десерт список компаний, в каждой из которых, работают свыше 200 Java разработчиков: Amazon, Oracle, Azul, Одноклассники, Deutsche Bank, Одноклассники, Luxoft , Twitter, Facebook, LinkedIn, JetBrains и другие.
Но, не спешите подавать свои резюме в эти компании, вначале мы приглашаем вас пройти тестирование https://goo.gl/MFqmQN
YouTube
День открытых дверей онлайн курса «Разработчик Java» в OTUS - YouTube
Расскажем о проекте OTUS, поговорим о курсе обучения «Разработчик Java», который будет проходить в формате вебинара, перспективах для выпускников и учебном п...
Несмотря на выходной день сегодня, совсем скоро мы начнем День открытых дверей на курсе "DevOps: практики и инструменты".
Ответим на все вопросы, расскажем про программу курса и, конечно, проведем розыгрыш бесплатных мест на курсе среди тех, кто прошел вступительное тестирование.
Начинаем через считанные минуты: https://www.youtube.com/channel/UCetgtvy93o3i3CvyGXKFU3g/live
Ответим на все вопросы, расскажем про программу курса и, конечно, проведем розыгрыш бесплатных мест на курсе среди тех, кто прошел вступительное тестирование.
Начинаем через считанные минуты: https://www.youtube.com/channel/UCetgtvy93o3i3CvyGXKFU3g/live
YouTube
OTUS IT Онлайн - образование
OTUS – масштабный образовательный IT-портал. 4955473489
Наш канал предлагает более 5000+ вебинаров по программированию, разработке, аналитике, машинному обучению и менеджменту — бесплатно получайте актуальные знания, которые точно понадобятся в 2025 году.…
Наш канал предлагает более 5000+ вебинаров по программированию, разработке, аналитике, машинному обучению и менеджменту — бесплатно получайте актуальные знания, которые точно понадобятся в 2025 году.…
Пять библиотек для Python, которые делают визуализацию данных простой. № 1 Bokeh.
Учитывая необычайный рост объемов и видов данных, которыми оперируют приложения, визуализация данных становится тем заданием, столкновение с которым неизбежно. И, очевидно, что навык презентовать данные в форме легкой для понимания становится все более ценным. OTUS представляет перевод серии заметок, в которой дается обзор пяти библиотек для визуализации данных в Python.
Возможность подключать расширения — одна из важнейших причин, почему Python так популярен среди разработчиков из самых разных областей. Как правило, все они имеют дело с большими объемами данными, и возможность представлять эти данные в удобоваримом формате для них является профессиональной необходимостью. В Python представлено множество способов визуализации данных, и некоторые из них перечислены ниже.
Каждая из этих библиотек обладает своими особенностями. В зависимости от контекста, определенные библиотеки могут быть более предпочтительными. Более того, некоторые из этих библиотек являются надстройками других модулей. Так например, Seaborn — библиотека для визуализации статистических данных, которая для построения графиков обращается к Matplotlib, модулю, который, пожалуй, является одним из самых популярных среди разработчиков на Python во всех областях. В этой серии заметок мы представим пять библиотек для визуализации данных, а именно: Bokeh, Seaborn, Altair, ggpot и Pygal.
Bokeh.
Библиотека визуализации данных Bokeh в первую предназначена для построения интерактивных графиков, которые рендерятся в веб-браузере. Визуализация, построенная с помощью Bokeh, в плане стиля близка к D3.js. Высокая производительность и интерактивность, даже в случае больших датасетов — одни из отличительных черт этого модуля.
Официальный мануал рекомендует использовать сборку Anaconda Python для легкой установки модуля. Естественно, библиотека может быть установлена и через pip, если требования удовлетворены.
Как уже говорилось, делать графики в Bokeh очень легко. Следующий пример кода позволяет построить простой линейный график и экспортировать его в html:
Главные шаги, задействованные в построении визуализации в Bokeh:
Загрузить данные.
Задать имя html файла, в который будет сохранен результат.
Использовать функцию
Задать параметры определенных видов графиков можно с помощью рендерера. В предыдущем примере был использован рендерер
Финальный шаг — вызвать функцию
Учитывая необычайный рост объемов и видов данных, которыми оперируют приложения, визуализация данных становится тем заданием, столкновение с которым неизбежно. И, очевидно, что навык презентовать данные в форме легкой для понимания становится все более ценным. OTUS представляет перевод серии заметок, в которой дается обзор пяти библиотек для визуализации данных в Python.
Возможность подключать расширения — одна из важнейших причин, почему Python так популярен среди разработчиков из самых разных областей. Как правило, все они имеют дело с большими объемами данными, и возможность представлять эти данные в удобоваримом формате для них является профессиональной необходимостью. В Python представлено множество способов визуализации данных, и некоторые из них перечислены ниже.
Каждая из этих библиотек обладает своими особенностями. В зависимости от контекста, определенные библиотеки могут быть более предпочтительными. Более того, некоторые из этих библиотек являются надстройками других модулей. Так например, Seaborn — библиотека для визуализации статистических данных, которая для построения графиков обращается к Matplotlib, модулю, который, пожалуй, является одним из самых популярных среди разработчиков на Python во всех областях. В этой серии заметок мы представим пять библиотек для визуализации данных, а именно: Bokeh, Seaborn, Altair, ggpot и Pygal.
Bokeh.
Библиотека визуализации данных Bokeh в первую предназначена для построения интерактивных графиков, которые рендерятся в веб-браузере. Визуализация, построенная с помощью Bokeh, в плане стиля близка к D3.js. Высокая производительность и интерактивность, даже в случае больших датасетов — одни из отличительных черт этого модуля.
Официальный мануал рекомендует использовать сборку Anaconda Python для легкой установки модуля. Естественно, библиотека может быть установлена и через pip, если требования удовлетворены.
Как уже говорилось, делать графики в Bokeh очень легко. Следующий пример кода позволяет построить простой линейный график и экспортировать его в html:
from bokeh.plotting import figure, output_file, show
# 1. Load some data in X,Y variables
x = [1, 2, 3, 4, 5]
y = [23, 15, 7, 12, 21]
# 2. Specify the name of the output HTML file
output_file(«lines.html»)
#3. create a new plot with a noscript and axis labels
p = figure(noscript=”Bokeh Demo for OSFY», x_axis_label=’x’, y_axis_label=’y’)
#4. add a line renderer with legend and line thickness
p.line(x, y, legend=”Age», line_width=3)
#5. show the results
show(p)
Главные шаги, задействованные в построении визуализации в Bokeh:
Загрузить данные.
Задать имя html файла, в который будет сохранен результат.
Использовать функцию
figure(), что построить график с заданными условиями.Задать параметры определенных видов графиков можно с помощью рендерера. В предыдущем примере был использован рендерер
Figure.line.Финальный шаг — вызвать функцию
show() или save().Bokeh также позволяет связывать различные факторы отдельных графиков, что осуществляется с помощью так называемого процесса linking panning. В примере ниже, некоторые из компонентов являются общими для нескольких графиков. Изменяя область значений одного из графиков, мы меняем ее и для других.
Пример кода:
Пример кода:
import numpy as np
from bokeh.layouts import gridplot
from bokeh.plotting import figure, output_file, show
# prepare some data
N = 100
x = np.linspace(0, 4*np.pi, N)
y0 = np.sin(x)
y1 = np.cos(x)
y2 = np.sin(x) + np.cos(x)
# output to static HTML file
output_file(«linked_panning.html»)
# create a new plot
s1 = figure(width=250, plot_height=250, noscript=None)
http://amp.gs/B4b8(x, y0, size=10, color=”blue», alpha=0.5)
# NEW: create a new plot and share both ranges
s2 = figure(width=250, height=250, x_range=s1.x_range, y_range=s1.y_range, noscript=None)
s2.triangle(x, y1, size=10, color=”firebrick», alpha=0.5)
# NEW: create a new plot and share only one range
s3 = figure(width=250, height=250, x_range=s1.x_range, noscript=None)
s3.square(x, y2, size=10, color=”green», alpha=0.5)
# NEW: put the subplots in a gridplot
p = gridplot([[s1, s2, s3]], toolbar_location=None)
# show the results
show(p)
Нововведения в Terraform.
Terraform — это продукт компании HashiCorp для декларативного описания инфраструктуры в виде кода. В последние два месяца произошло два значимых для сообщества Terraform события: релиз версии 0.10 и конференция HashiConf. В рамках нового релиза код ядра Terraform был отделен от кода провайдеров и они были вынесены в отдельную организацию на GitHub. Это позволяет теперь вести их разработку отдельно от релизного цикла основного продукта. Таким образом, релизы провайдеров стали выходить чаще, исправления ошибок и новые функции появляются быстрее, увеличилась вовлеченность сообщества в разработку. И стало возможным фиксировать в конфигурации не только версию самого Terraform, но и используемых провайдеров.
Также в версии 0.10 добавили флаг -auto-approve для команды terraform apply, и теперь можно проконтролировать изменения и подтвердить их одной командой «terraform apply -auto-approve=false» вместо привычной последовательности команд «terraform plan && terraform apply», которая в некоторых случаях могла приводить к непредсказуемому результату.
На конференции HashiConf 2017 был представлен портал Terraform Module Registry. У Terraform появилось центральное хранилище для модулей, в котором можно найти необходимый модуль, примеры его использования, какие параметры он принимает и, что предоставляет. В нем находятся, как проверенные (verified), так и community модули. А в Enterprise версии Terraform доступен Private Module Registry для собственных закрытых разработок.
Научиться использовать Terraform и практике Infrastructure as Code вам помогут эксперты из Экспресс 42 в курсе "DevOps практики и инструменты" в OTUS.
Terraform — это продукт компании HashiCorp для декларативного описания инфраструктуры в виде кода. В последние два месяца произошло два значимых для сообщества Terraform события: релиз версии 0.10 и конференция HashiConf. В рамках нового релиза код ядра Terraform был отделен от кода провайдеров и они были вынесены в отдельную организацию на GitHub. Это позволяет теперь вести их разработку отдельно от релизного цикла основного продукта. Таким образом, релизы провайдеров стали выходить чаще, исправления ошибок и новые функции появляются быстрее, увеличилась вовлеченность сообщества в разработку. И стало возможным фиксировать в конфигурации не только версию самого Terraform, но и используемых провайдеров.
Также в версии 0.10 добавили флаг -auto-approve для команды terraform apply, и теперь можно проконтролировать изменения и подтвердить их одной командой «terraform apply -auto-approve=false» вместо привычной последовательности команд «terraform plan && terraform apply», которая в некоторых случаях могла приводить к непредсказуемому результату.
На конференции HashiConf 2017 был представлен портал Terraform Module Registry. У Terraform появилось центральное хранилище для модулей, в котором можно найти необходимый модуль, примеры его использования, какие параметры он принимает и, что предоставляет. В нем находятся, как проверенные (verified), так и community модули. А в Enterprise версии Terraform доступен Private Module Registry для собственных закрытых разработок.
Научиться использовать Terraform и практике Infrastructure as Code вам помогут эксперты из Экспресс 42 в курсе "DevOps практики и инструменты" в OTUS.
Как поднять свой уровень профессионализма в искусстве программирования? С этим вопросом сталкивается каждый специалист сферы IT технологий в определенный момент карьерного роста. Мы все хотим достичь высот в карьере, стать востребованными профессионалами и обеспечить себе стабильное будущее. Изучить тонкости разработки серверных приложений на Java и получить качественное образование в России — это возможно. Приходите к нам на День Открытых Дверей, который состоится завтра, 9 ноября, в формате онлайн. На повестке дня встреча с преподавателем курса Виталием Чибриковым. Вы сможете узнать о курсе «Разработчик Java», что входит в программу, как строится формат обучения, какие знания и навыки вы получите после обучения и, как их можно применить на практике.
По традиции, для самых светлых умов программирования, будут разыграны бесплатные места в группе. Проверить свои знания и принять участие в конкурсе можно пройдя тестирование на официальном сайте образовательного проекта OTUS https://goo.gl/SB6atk
Начало Дня Открытых Дверей по курсу «Разработчик Java» начнется в 20:00 по московскому времени.
До встречи!
По традиции, для самых светлых умов программирования, будут разыграны бесплатные места в группе. Проверить свои знания и принять участие в конкурсе можно пройдя тестирование на официальном сайте образовательного проекта OTUS https://goo.gl/SB6atk
Начало Дня Открытых Дверей по курсу «Разработчик Java» начнется в 20:00 по московскому времени.
До встречи!
День открытых дверей по курсу «Разработчик Java» 09.11.2017 в 20:00 | OTUS
День открытых дверей по курсу «Разработчик Java» 09.11.2017 в 20:00 в OTUS
Оптимизация сборки Docker образов.
Контейнеры привнесли новый формат поставки ПО. Для запуска приложения в контейнере мы предварительно собираем образ с кодом приложения и необходимыми зависимостями, который становится артефактом для деплоя.
С таким форматом поставки мы находимся в постоянном процессе сборки новых образов, который нам, безусловно, хотелось бы оптимизировать. Наши цели просты: сделать сборку образов быстрой, а размер самого образа небольшим, чтобы ускорить процесс его доставки до среды запуска контейнера.
Существует множество способов для достижения данных целей. Подробнее об этом вы можете узнать на курсе «DevOps практики и инструменты» в OTUS. Здесь же мы рассмотрим один из способов, как можно сократить размер образа на примере Go приложения.
Мы будем говорить с вами про Docker контейнеры, т.к. на сегодняшний момент они являются наиболее популярными. Поскольку наше приложение написано на компилируемом языке, то перед его запуском нам нужно скомпилировать код.
Мы можем это сделать внутри контейнера следующим образом (пример Dockerfile):
«FROM golang:1.9.1»
«WORKDIR /go-builder/»
«COPY hello-world.go .»
«RUN go build -o hello-world .»
«CMD [»./hello-world"]»
Образ контейнера получаемого на выходе равен 740 MB.
Заметим, что для запуска скомпилированного приложения не требуется установки самого языка Go и всей среды сборки кода. Поэтому мы можем разнести компиляцию кода и запуск полученного на выходе бинарного файла по двум разным контейнерам. Docker недавно упростил данную процедуру, дав возможность описывать данный процесс в одном Dockerfile при помощи multi-stage сборок:
«FROM golang:1.9.1 as builder»
«WORKDIR /go-builder/»
«COPY hello-world.go .»
«RUN CGO_ENABLED=0 GOOS=linux go build -o hello-world .»
«FROM alpine:latest»
«COPY —from=builder /go-builder/hello-world .»
«CMD [»./hello-world"]»
В данном Dockerfile мы описываем один контейнер для компиляции кода (builder) и второй контейнер для запуска скомпилированного приложения. Команда «COPY —from=builder» позволяет скопировать полученный бинарный файл из builder контейнера в контейнер для запуска. Образ полученного образа равен 10 MB, что в десятки раз меньше, чем в предыдущем случае.
Контейнеры привнесли новый формат поставки ПО. Для запуска приложения в контейнере мы предварительно собираем образ с кодом приложения и необходимыми зависимостями, который становится артефактом для деплоя.
С таким форматом поставки мы находимся в постоянном процессе сборки новых образов, который нам, безусловно, хотелось бы оптимизировать. Наши цели просты: сделать сборку образов быстрой, а размер самого образа небольшим, чтобы ускорить процесс его доставки до среды запуска контейнера.
Существует множество способов для достижения данных целей. Подробнее об этом вы можете узнать на курсе «DevOps практики и инструменты» в OTUS. Здесь же мы рассмотрим один из способов, как можно сократить размер образа на примере Go приложения.
Мы будем говорить с вами про Docker контейнеры, т.к. на сегодняшний момент они являются наиболее популярными. Поскольку наше приложение написано на компилируемом языке, то перед его запуском нам нужно скомпилировать код.
Мы можем это сделать внутри контейнера следующим образом (пример Dockerfile):
«FROM golang:1.9.1»
«WORKDIR /go-builder/»
«COPY hello-world.go .»
«RUN go build -o hello-world .»
«CMD [»./hello-world"]»
Образ контейнера получаемого на выходе равен 740 MB.
Заметим, что для запуска скомпилированного приложения не требуется установки самого языка Go и всей среды сборки кода. Поэтому мы можем разнести компиляцию кода и запуск полученного на выходе бинарного файла по двум разным контейнерам. Docker недавно упростил данную процедуру, дав возможность описывать данный процесс в одном Dockerfile при помощи multi-stage сборок:
«FROM golang:1.9.1 as builder»
«WORKDIR /go-builder/»
«COPY hello-world.go .»
«RUN CGO_ENABLED=0 GOOS=linux go build -o hello-world .»
«FROM alpine:latest»
«COPY —from=builder /go-builder/hello-world .»
«CMD [»./hello-world"]»
В данном Dockerfile мы описываем один контейнер для компиляции кода (builder) и второй контейнер для запуска скомпилированного приложения. Команда «COPY —from=builder» позволяет скопировать полученный бинарный файл из builder контейнера в контейнер для запуска. Образ полученного образа равен 10 MB, что в десятки раз меньше, чем в предыдущем случае.
Теперь OTUS в Instagram! Подписывайтесь на наш канал, а мы обещаем информировать о свежих новостях, итогах и полезных лайфхаках! Kik @otus.ru!
Сегодня День Открытых Дверей Курса Java! Начало в 20:00 по московскому времени. Присоединяйтесь к трансляции, узнайте все тонкости программы обучения, задавайте волнующие вас вопросы. Олег Климаков, преподаватель курса, в прямом эфире готов рассказать о всех нюансах обучения, какой опыт и знания вы приобретете и, как вы сможете с пользой применять их на практике.
Присоединится к трансляции https://goo.gl/SVWvwM
Еще можно пройти тестирование и побороться за возможность получит бесплатное обучение на курсе «Разработчик Java»!
Присоединится к трансляции https://goo.gl/SVWvwM
Еще можно пройти тестирование и побороться за возможность получит бесплатное обучение на курсе «Разработчик Java»!
OTUS: день открытых дверей
Профессиональные онлайн курсы для разработчиков
ООП в Python — это вам не Java. Никаких вам фабрик абстрактных классов, интерфейсов и вот этого всего. Есть, конечно, ABC и очумелые ручки, но это совсем другая история. Но классы и наследование есть, конечно. Не смотря на это, в нет строгого разделения на «public/private/protected». На фоне этой правды жизни возникло соглашение о том, что одно нижнее подчеркивание (_) перед именем означает пометку «только для внутреннего пользования» и даже в случае from M import * такие имена не будут импортироваться. Но это все же лишь соглашение, и если очень хочется, то ничто особо не мешает получить, например, доступ к полю, начинающемуся с нижнего подчеркивания.
Самое близкое, в некотором смысле, к private полю в Python можно получить, написав не одно, а два нижних подчеркивания перед именем. При попытке прямого доступа в таком случается получается ошибка, например:
Traceback (most recent call last):
«File „<stdin>“, line 1, in <module>»
«AttributeError: CachedResponse instance has no attribute ‘__intermediate_result’»
Но даже такой механизм обеспечения приватности не особо сильнее предыдущего, так как на самом деле, значение поля из примера выше можно получить, обратившись к атрибуту «_CachedResponse__intermediate_result». Это так называемый name mangling. Но, в основном, он все же предназначен для избежания инцидентов с одинаковыми именами полей в дочерних классах и тому подобным.
Самое близкое, в некотором смысле, к private полю в Python можно получить, написав не одно, а два нижних подчеркивания перед именем. При попытке прямого доступа в таком случается получается ошибка, например:
Traceback (most recent call last):
«File „<stdin>“, line 1, in <module>»
«AttributeError: CachedResponse instance has no attribute ‘__intermediate_result’»
Но даже такой механизм обеспечения приватности не особо сильнее предыдущего, так как на самом деле, значение поля из примера выше можно получить, обратившись к атрибуту «_CachedResponse__intermediate_result». Это так называемый name mangling. Но, в основном, он все же предназначен для избежания инцидентов с одинаковыми именами полей в дочерних классах и тому подобным.