<MyRusakov.ru />

Программирование на C++ с Нуля до Гуру

Программирование на C++ с Нуля до Гуру

Данный курс научит Вас программировать на языке C++, который, несмотря на свой почтенный возраст, необычайно сильно востребован. Курс состоит из 6 разделов, посмотрев которые и выполнив все упражнения, Вы с нуля освоите этот язык и сможете создавать самые разные проекты любой сложности на C++.

Для закрепления материала из уроков к ним идёт множество упражнений.

Дополнительно к курсу идёт вспомогательная система, которая не даст Вам забросить начатое на полпути.

Также вместе с курсов Вы получаете Бонус "Программирование на C++ в Unreal Engine", в котором Вы научитесь создавать игры на C++ с использованием этого движка.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

Пакеты в Python

Пакеты в Python

Пространства имен это неотъемлемая часть программирования, так как позволяет избегать конфликтов имен при операциях импорта. В Python данную функцию выполняют пакеты. Пакет в Python - это папка с модулями и файлом init.py. Модули в Python, в свою очередь - это файлы кода, с расширением .py. Для более детального понимания сути сказанного, создадим папку с именем mypackage и рядом файл main.py. Это будет главный файл, с которого начнет выполняться программа. В папку mypackage поместим файлы module1 и module2 и определим в них переменные и методы:

# module1.py

a = 1
b = 2
c = 'myrusakov'

def do_some():
  pass

# module2.py

d = 5
e = 7
f = "website"

Теперь в главном файле main.py, находящимся на уровне папки mypackage попробуем импортировать наш будущий папку/пакет mypackage. Но прежде, напомню, что в Python есть несколько вариантов импорта. В зависимости от того импортируем мы сам пакет, модуль из него или же переменные и методы модуля

# в файле main.py все операции импорта

import mypackage


mypackage.module1

''' возникает ошибка, так как mypackage это пока что, просто папка а не пакет, и для нее справедлив такой вариант:'''  

import mypackage.module1

# так вызываем переменные из модуля 
print(mypackage.module1.a)

# вывод
1

Также можно обойтись без названия папки, путем импорта самих модулей или же переменной из модуля:

from mypackage import module1, module2 print(module.a) from mypackage.module1 import a print(a)

Но как мы знаем в Python можно импортировать пакет и все переменные модулей будут видны из одного места. Чтобы превратить нашу папку в пакет, в папке mypackage создадим файл init.py. И каждый раз при импорте модуля первым исполнится данный файл. Для проверки сказанного поместим в него print("init"):

# main.py
import mypackage

# вывод 

#__init__

Так для чего это нужно. Как мы уже знаем при импорте кода в виде модуля из папки/пакета мы используем import mypackage.module1. И чтобы постоянно не обращаться ко всем модулям в папке, так как их может быть много мы и используем файл init.py

# __init__.py



from . module1 import a, b, с 

from . module2 import d, e, f



# точка здесь указывает путь относительно которого мы производим импорт, и означает  текущий каталог
# __init__.py
# оператор * значит импорт всего из 

from . import *

# main.py

import mypackage

mypackage.module2.d

Также в самих импортируемых файлах можно указать список разрешенный для импорта с помощью __all__. Посредством данного списка Вы ограничиваете набор экспортируемых констант, методов, классов.

# module1.py

__all__ = ['a', 'b']


a = 1
b = 2
c = 'myrusakov'

Таким образом в Python достаточно просто превратить папку с кодом в пакет, и тем самым повысив удобочитаемость импортируемого кода.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.