NAMESPACE - это отображение имен в объекты. Большинство пространств имен в настоящее время реализованы как Python
словари, но это, как правило, не заметно (кроме производительности), и это может
изменить в будущем. Примерами пространств имен являются: набор встроенных имен (содержащих функции
такие как abs () и встроенные имена исключений); глобальные имена в модуле; и местные имена
в вызове функции. В некотором смысле набор атрибутов объекта также образует пространство имен.
Важно знать о пространствах имен, что между именами нет абсолютно никакой связи
в разных пространствах имен; например, два разных модуля могут оба определять функцию максимизации
без путаницы - пользователи модулей должны префиксировать его с именем модуля.
Кстати, мы используем атрибут слова для любого имени, следующего за точкой - например, в выражении
z.real, real - это атрибут объекта z. Строго говоря, ссылки на имена в модулях
ссылки на атрибуты: в выражении modname.func_name, modname является объектом модуля, а func_name
является атрибутом этого. В этом случае происходит прямое отображение между
Атрибуты модуля и глобальные имена, определенные в модуле: они используют одно и то же пространство имен!
SCOPE - это текстовая область Python-программы, где пространство имен доступно напрямую.
«Непосредственно доступный» здесь означает, что безусловная ссылка на имя пытается найти имя
в пространстве имен.
Хотя области действия определены статически, они используются динамически. В любое время во время исполнения,
Есть как минимум три вложенные области, пространства имен которых доступны напрямую:
- самая внутренняя область, которая ищется первой, содержит локальные имена.
- объемы любых включающих функций, которые ищутся, начиная с ближайшего охватывающего
область действия, содержит нелокальные, но также и неглобальные имена.
- следующая за последней область содержит глобальные имена текущего модуля.
- самая внешняя область (последний поиск) - это пространство имен, содержащее встроенные имена.
БЫТЬ ОСТОРОЖЕН!!!
-------------
Изменение глобальных или нелокальных переменных внутри внутренней функции может быть ПЛОХОЙ
практикой и может привести к более сложной отладке и более хрупкому коду! Делайте это только если знаете
что ты делаешь.
Для более подробного изучения смотрите ниже по ссылке.
Источник:
https://github.com/trekhleb/learn-python/blob/master/src/functions/test_function_scopes.py
словари, но это, как правило, не заметно (кроме производительности), и это может
изменить в будущем. Примерами пространств имен являются: набор встроенных имен (содержащих функции
такие как abs () и встроенные имена исключений); глобальные имена в модуле; и местные имена
в вызове функции. В некотором смысле набор атрибутов объекта также образует пространство имен.
Важно знать о пространствах имен, что между именами нет абсолютно никакой связи
в разных пространствах имен; например, два разных модуля могут оба определять функцию максимизации
без путаницы - пользователи модулей должны префиксировать его с именем модуля.
Кстати, мы используем атрибут слова для любого имени, следующего за точкой - например, в выражении
z.real, real - это атрибут объекта z. Строго говоря, ссылки на имена в модулях
ссылки на атрибуты: в выражении modname.func_name, modname является объектом модуля, а func_name
является атрибутом этого. В этом случае происходит прямое отображение между
Атрибуты модуля и глобальные имена, определенные в модуле: они используют одно и то же пространство имен!
SCOPE - это текстовая область Python-программы, где пространство имен доступно напрямую.
«Непосредственно доступный» здесь означает, что безусловная ссылка на имя пытается найти имя
в пространстве имен.
Хотя области действия определены статически, они используются динамически. В любое время во время исполнения,
Есть как минимум три вложенные области, пространства имен которых доступны напрямую:
- самая внутренняя область, которая ищется первой, содержит локальные имена.
- объемы любых включающих функций, которые ищутся, начиная с ближайшего охватывающего
область действия, содержит нелокальные, но также и неглобальные имена.
- следующая за последней область содержит глобальные имена текущего модуля.
- самая внешняя область (последний поиск) - это пространство имен, содержащее встроенные имена.
БЫТЬ ОСТОРОЖЕН!!!
-------------
Изменение глобальных или нелокальных переменных внутри внутренней функции может быть ПЛОХОЙ
практикой и может привести к более сложной отладке и более хрупкому коду! Делайте это только если знаете
что ты делаешь.
Для более подробного изучения смотрите ниже по ссылке.
Источник:
https://github.com/trekhleb/learn-python/blob/master/src/functions/test_function_scopes.py
GitHub
learn-python/src/functions/test_function_scopes.py at master · trekhleb/learn-python
📚 Playground and cheatsheet for learning Python. Collection of Python scripts that are split by topics and contain code examples with explanations. - trekhleb/learn-python
Forwarded from Книги для программистов
Python Crash Course: A Hands-On, Project-Based Introduction to Programming (2015)
Автор: Эрик Мэтиз
#python #books #rus #beginner
Язык: русский
Целевая аудитория: начинающие программисты.
Если вам не терпится перейти к разработке приложений на python, то эта книга для вас. В ней вы быстро пробежитесь по основам программирования и самому языку, а потом напишите больше приложение — игру, которую будете постепенно усложнять, используя приобретённые знания и навыки. Также вы научитесь работать с большими наборами данных и освоите их визуализацию и создадите полноценное веб-приложение на базе Django, гарантирующее конфиденциальность пользовательской информации.
Преимущества руководства:
➕ доступный и простой язык повествования;
➕ актуальный материал;
➕ эффективный подход к обучению;
➕ рассмотрены важные способности языка.
Недостатки:
➖ листинги напечатаны так, что нарушают главную особенность языка — отступы;
➖ плохой перевод и большое количество опечаток.
Автор: Эрик Мэтиз
#python #books #rus #beginner
Язык: русский
Целевая аудитория: начинающие программисты.
Если вам не терпится перейти к разработке приложений на python, то эта книга для вас. В ней вы быстро пробежитесь по основам программирования и самому языку, а потом напишите больше приложение — игру, которую будете постепенно усложнять, используя приобретённые знания и навыки. Также вы научитесь работать с большими наборами данных и освоите их визуализацию и создадите полноценное веб-приложение на базе Django, гарантирующее конфиденциальность пользовательской информации.
Преимущества руководства:
➕ доступный и простой язык повествования;
➕ актуальный материал;
➕ эффективный подход к обучению;
➕ рассмотрены важные способности языка.
Недостатки:
➖ листинги напечатаны так, что нарушают главную особенность языка — отступы;
➖ плохой перевод и большое количество опечаток.
Основы декораторов Python.
Итак, что же такое декораторы на самом деле? Они «украшают», или
«обертывают», другую функцию и позволяют исполнять программный
код до и после того, как обернутая функция выполнится.
Декораторы позволяют определять конструктивные блоки многократного
использования, которые могут изменять или расширять поведение других функций. И они позволяют это делать без необратимых изменений самой
обернутой функции. Поведение функции изменяется, только когда оно декорировано.
Как могла бы выглядеть реализация простого декоратора? В общих чертах декоратор — это вызываемый объект, который на входе принимает один
вызываемый объект, а на выходе возвращает другой вызываемый объект.
Приведенная ниже функция имеет это свойство и может считаться самым
простым декоратором, который вы могли когда-либо написать:
'''
def null_decorator(func):
return func
'''
Как вы видите, null_decorator является вызываемым объектом (это функция). На входе он принимает еще один вызываемый объект и на выходе возвращает тот же самый вызываемый объект без его изменения.
Итак, что же такое декораторы на самом деле? Они «украшают», или
«обертывают», другую функцию и позволяют исполнять программный
код до и после того, как обернутая функция выполнится.
Декораторы позволяют определять конструктивные блоки многократного
использования, которые могут изменять или расширять поведение других функций. И они позволяют это делать без необратимых изменений самой
обернутой функции. Поведение функции изменяется, только когда оно декорировано.
Как могла бы выглядеть реализация простого декоратора? В общих чертах декоратор — это вызываемый объект, который на входе принимает один
вызываемый объект, а на выходе возвращает другой вызываемый объект.
Приведенная ниже функция имеет это свойство и может считаться самым
простым декоратором, который вы могли когда-либо написать:
'''
def null_decorator(func):
return func
'''
Как вы видите, null_decorator является вызываемым объектом (это функция). На входе он принимает еще один вызываемый объект и на выходе возвращает тот же самый вызываемый объект без его изменения.
Давайте его применим, чтобы декорировать (или обернуть) еще одну
функцию:
def greet():
return 'Привет!'
greet = null_decorator(greet)
>>> greet()
'Привет!'
В этом примере я определил функцию greet и сразу же ее декорировал,
пропустив через функцию null_decorator. Понимаю, пока это все выглядит бесполезным. Я ведь о том, что мы намеренно спроектировали
пустой декоратор бесполезным, верно? Но через мгновение этот пример разъяснит, как работает специальный синтаксис Python, предназначенный
для декораторов.
Вместо того чтобы явным образом вызывать null_decorator с функцией
greet и затем по-новому присваивать его переменной, удобнее воспользоваться синтаксисом Python @ для декорирования функции:
@null_decorator
def greet():
return 'Привет!'
>>> greet()
'Привет!'
Размещение строки @null_decorator перед определением функции аналогично тому, что функция сначала определяется и затем уже прогоняется
через декоратор. Синтаксис @ является всего лишь синтаксическим сахаром (syntactic sugar) и краткой формой для этого широко применяемого
шаблона.
Обратите внимание: синтаксис @ декорирует функцию непосредственно
во время ее определения. При этом становится трудно получить доступ
к недекорированному оригиналу без хрупких хакерских фокусов. По этой причине вы можете решить вручную декорировать некоторые функции для сохранения способности вызвать и недекорированную функцию.
функцию:
def greet():
return 'Привет!'
greet = null_decorator(greet)
>>> greet()
'Привет!'
В этом примере я определил функцию greet и сразу же ее декорировал,
пропустив через функцию null_decorator. Понимаю, пока это все выглядит бесполезным. Я ведь о том, что мы намеренно спроектировали
пустой декоратор бесполезным, верно? Но через мгновение этот пример разъяснит, как работает специальный синтаксис Python, предназначенный
для декораторов.
Вместо того чтобы явным образом вызывать null_decorator с функцией
greet и затем по-новому присваивать его переменной, удобнее воспользоваться синтаксисом Python @ для декорирования функции:
@null_decorator
def greet():
return 'Привет!'
>>> greet()
'Привет!'
Размещение строки @null_decorator перед определением функции аналогично тому, что функция сначала определяется и затем уже прогоняется
через декоратор. Синтаксис @ является всего лишь синтаксическим сахаром (syntactic sugar) и краткой формой для этого широко применяемого
шаблона.
Обратите внимание: синтаксис @ декорирует функцию непосредственно
во время ее определения. При этом становится трудно получить доступ
к недекорированному оригиналу без хрупких хакерских фокусов. По этой причине вы можете решить вручную декорировать некоторые функции для сохранения способности вызвать и недекорированную функцию.
Forwarded from Библиотека питониста | Python, Django, Flask
Автор приводит несколько полезных привычек по написанию хорошего кода.
В приведенных ниже примерах некоторые из них будут вызывать проблемы с производительностью, другие - скрытые ошибки или трудности в будущем обслуживании и рефакторинге, а другие, как мне кажется, недостаточно питонны.
#статьядня
https://prglb.ru/qjac
В приведенных ниже примерах некоторые из них будут вызывать проблемы с производительностью, другие - скрытые ошибки или трудности в будущем обслуживании и рефакторинге, а другие, как мне кажется, недостаточно питонны.
#статьядня
https://prglb.ru/qjac
Forwarded from Библиотека питониста | Python, Django, Flask
Создаем бота в Facebook на Python менее чем за 60 минут
В этой статье научим как создать бота в Facebook при помощи Python, Flask, библиотеки PyMessenger и локального хостинга через ngrok.
#статьядня
https://prglb.ru/44506
В этой статье научим как создать бота в Facebook при помощи Python, Flask, библиотеки PyMessenger и локального хостинга через ngrok.
#статьядня
https://prglb.ru/44506
Представляю вам канал моего партнера!
Всегда хотел что-то взломать?
t.me/darkside_team - это то место где тебя этому научат!
· Хакерские статьи 😈
· Сливы мануалов 😈
· Рабочие схемы заработка 😈
Добро пожаловать на тёмную сторону.💣
Всегда хотел что-то взломать?
t.me/darkside_team - это то место где тебя этому научат!
· Хакерские статьи 😈
· Сливы мануалов 😈
· Рабочие схемы заработка 😈
Добро пожаловать на тёмную сторону.💣
В ближайшее время опубликую статью об алгоритмах. А сейчас теория.
Алгори́тм (лат. algorithmi — от арабского имени математика Аль-Хорезми) — конечная совокупность точно заданных правил решения произвольного класса задач или набор инструкций, описывающих порядок действий исполнителя для решения некоторой задачи. В старой трактовке вместо слова «порядок» использовалось слово «последовательность», но по мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Независимые инструкции могут выполняться в произвольном порядке, параллельно, если это позволяют используемые исполнители.
Понятие алгоритма относится к первоначальным, основным, базисным понятиям математики. Вычислительные процессы алгоритмического характера (арифметические действия над целыми числами, нахождение наибольшего общего делителя двух чисел и т. д.) известны человечеству с глубокой древности. Однако в явном виде понятие алгоритма сформировалось лишь в начале XX века.
Современное формальное определение вычислительного алгоритма было дано в 30—50-е годы XX века в работах Тьюринга, Поста, Чёрча (тезис Чёрча — Тьюринга), Н. Винера, А. А. Маркова.
Само слово «алгоритм» происходит от имени хорезмского учёного аль-Хорезми. Около 825 года он написал сочинение Китаб аль-джебр валь-мукабала («Книга о сложении и вычитании»), из оригинального названия которого происходит слово «алгебра» (аль-джебр — восполнение). В этой книге впервые дал описание придуманной в Индии позиционной десятичной системы счисления. Персидский оригинал книги не сохранился. Аль-Хорезми сформулировал правила вычислений в новой системе и, вероятно, впервые использовал цифру 0 для обозначения пропущенной позиции в записи числа (её индийское название арабы перевели как as-sifr или просто sifr, отсюда такие слова, как «цифра» и «шифр»). Приблизительно в это же время индийские цифры начали применять и другие арабские учёные.
В первой половине XII века книга аль-Хорезми в латинском переводе проникла в Европу. Переводчик, имя которого до нас не дошло, дал ей название Algoritmi de numero Indorum («Алгоритми о счёте индийском») — таким образом, латинизированное имя среднеазиатского учёного было вынесено в заглавие книги. Сегодня считается, что слово «алгоритм» попало в европейские языки именно благодаря этому переводу. В течение нескольких следующих столетий появилось множество других трудов, посвящённых всё тому же вопросу — обучению искусству счёта с помощью цифр, и все они имели в названии слово algoritmi или algorismi.
Про аль-Хорезми позднейшие авторы ничего не знали, но поскольку первый перевод книги начинается словами: «Dixit algorizmi: …» («Аль-Хорезми говорил: …»), всё ещё связывали это слово с именем конкретного человека.
Алгори́тм (лат. algorithmi — от арабского имени математика Аль-Хорезми) — конечная совокупность точно заданных правил решения произвольного класса задач или набор инструкций, описывающих порядок действий исполнителя для решения некоторой задачи. В старой трактовке вместо слова «порядок» использовалось слово «последовательность», но по мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Независимые инструкции могут выполняться в произвольном порядке, параллельно, если это позволяют используемые исполнители.
Понятие алгоритма относится к первоначальным, основным, базисным понятиям математики. Вычислительные процессы алгоритмического характера (арифметические действия над целыми числами, нахождение наибольшего общего делителя двух чисел и т. д.) известны человечеству с глубокой древности. Однако в явном виде понятие алгоритма сформировалось лишь в начале XX века.
Современное формальное определение вычислительного алгоритма было дано в 30—50-е годы XX века в работах Тьюринга, Поста, Чёрча (тезис Чёрча — Тьюринга), Н. Винера, А. А. Маркова.
Само слово «алгоритм» происходит от имени хорезмского учёного аль-Хорезми. Около 825 года он написал сочинение Китаб аль-джебр валь-мукабала («Книга о сложении и вычитании»), из оригинального названия которого происходит слово «алгебра» (аль-джебр — восполнение). В этой книге впервые дал описание придуманной в Индии позиционной десятичной системы счисления. Персидский оригинал книги не сохранился. Аль-Хорезми сформулировал правила вычислений в новой системе и, вероятно, впервые использовал цифру 0 для обозначения пропущенной позиции в записи числа (её индийское название арабы перевели как as-sifr или просто sifr, отсюда такие слова, как «цифра» и «шифр»). Приблизительно в это же время индийские цифры начали применять и другие арабские учёные.
В первой половине XII века книга аль-Хорезми в латинском переводе проникла в Европу. Переводчик, имя которого до нас не дошло, дал ей название Algoritmi de numero Indorum («Алгоритми о счёте индийском») — таким образом, латинизированное имя среднеазиатского учёного было вынесено в заглавие книги. Сегодня считается, что слово «алгоритм» попало в европейские языки именно благодаря этому переводу. В течение нескольких следующих столетий появилось множество других трудов, посвящённых всё тому же вопросу — обучению искусству счёта с помощью цифр, и все они имели в названии слово algoritmi или algorismi.
Про аль-Хорезми позднейшие авторы ничего не знали, но поскольку первый перевод книги начинается словами: «Dixit algorizmi: …» («Аль-Хорезми говорил: …»), всё ещё связывали это слово с именем конкретного человека.
Forwarded from Книги для программистов
Васильев_А_Н_Python_на_примерах-2016.pdf
39.7 MB
Python на примерах. Практический курс по программированию
Автор: Васильев А.Н.
Автор: Васильев А.Н.
👍1
«Институт биоинформатики выпускает курс Анатолия Карпова по машинному обучению».
Запишись, или проиграешь: https://stepik.org/course/4852/syllab...
Начало 15 апреля.
Запишись, или проиграешь: https://stepik.org/course/4852/syllab...
Начало 15 апреля.
Forwarded from Библиотека питониста | Python, Django, Flask
Planning Content:
Introducing Python: Modern Computing in Simple Packages
Автор: Билл Любанович
В этой книге вы узнаете об основах языка, о современных пакетах и библиотеках Python 3. Также автор рассматривает такие сложные темы, как отладка, тестирование, повторное использование кода и многое другое. Объяснения автора перемешаны с примерами кода, которые помогут быстро освоить язык и перейти к программированию реальных приложений.
#книгадня
Книга прикреплена ниже
Introducing Python: Modern Computing in Simple Packages
Автор: Билл Любанович
В этой книге вы узнаете об основах языка, о современных пакетах и библиотеках Python 3. Также автор рассматривает такие сложные темы, как отладка, тестирование, повторное использование кода и многое другое. Объяснения автора перемешаны с примерами кода, которые помогут быстро освоить язык и перейти к программированию реальных приложений.
#книгадня
Книга прикреплена ниже
👍1
Модель TCP/IP
Изначально данный стек создавался для объединения больших компьютеров в университетах по телефонным линиям связи соединения «точка-точка». Но когда появились новые технологии, широковещательные (Ethernet) и спутниковые, возникла необходимость адаптировать TCP/IP, что оказалось непростой задачей. Именно поэтому наряду с OSI появилась модель TCP/IP.
Изначально данный стек создавался для объединения больших компьютеров в университетах по телефонным линиям связи соединения «точка-точка». Но когда появились новые технологии, широковещательные (Ethernet) и спутниковые, возникла необходимость адаптировать TCP/IP, что оказалось непростой задачей. Именно поэтому наряду с OSI появилась модель TCP/IP.
В таблице представлено сравнение моделей OSI и TCP/IP. Последняя включает в себя 4 уровня:
Самый нижний, уровень сетевых интерфейсов, обеспечивает взаимодействие с сетевыми технологиями (Ethernet, Wi-Fi и т. д.). Это объединение функций канального и физического уровней OSI.
Уровень интернет стоит выше, и по задачам перекликается с сетевым уровнем модели OSI. Он обеспечивает поиск оптимального маршрута, включая выявление неполадок в сети. Именно на этом уровне работает маршрутизатор.
Транспортный отвечает за связь между процессами на разных компьютерах, а также за доставку переданной информации без дублирования, потерь и ошибок, в необходимой последовательности.
Прикладной объединил в себе 3 уровня модели OSI: сеансовый, представления и прикладной. То есть он выполняет такие функции, как поддержка сеанса связи, преобразование протоколов и информации, а также взаимодействие пользователя и сети.
Уровень интернет стоит выше, и по задачам перекликается с сетевым уровнем модели OSI. Он обеспечивает поиск оптимального маршрута, включая выявление неполадок в сети. Именно на этом уровне работает маршрутизатор.
Транспортный отвечает за связь между процессами на разных компьютерах, а также за доставку переданной информации без дублирования, потерь и ошибок, в необходимой последовательности.
Прикладной объединил в себе 3 уровня модели OSI: сеансовый, представления и прикладной. То есть он выполняет такие функции, как поддержка сеанса связи, преобразование протоколов и информации, а также взаимодействие пользователя и сети.
JSON — текстовый формат обмена данными, основанный на JavaScript.
Несмотря на происхождение от JavaScript, формат считается независимым от языка и может использоваться практически с любым языком программирования. Для многих языков существует готовый код для создания и обработки данных в формате JSON.
В python это библиотека json
Несмотря на происхождение от JavaScript, формат считается независимым от языка и может использоваться практически с любым языком программирования. Для многих языков существует готовый код для создания и обработки данных в формате JSON.
В python это библиотека json