Вторая по частоте future-функция, которую я использовал, это абсолютный импорт
from __future__ import absolute_import
Что она делает?
Изменения, которые вносит эта инъекция описаны в PEP328
Покажу простой пример.
Допустим, есть такой пакет:
/my_package
/__init__.py
/main.py
/string.py
Смотрим код в my_package/main.py
# main.py
import string
Простой пример готов) Вопрос в том, какой модуль импортируется в данном случае? Есть два варианта:
1. модуль в моём пакете my_package.string
2. стандартный модуль string
И вот тут вступает в дело приоритет импортов. В Python2 порядок следующий: помимо иных источников, раньше ищется модуль внутри текущего пакета, а потом в стандартных библиотеках. Таким образом мы импортнём my_package.string.
Но в Python3 это поведение изменилось. Если мы указываем просто имя пакета, то ищется именно такой модуль, игнорируя имена в текущем пакете. Если мы хотим импортнуть именно подмодуль из нашего пакета то, мы должны теперь явно это указывать.
from my_package import string
или относительный импорт, но с указанием пути относительно текущего модуля main
from . import string
Еще одной неоднозначностью меньше 😎
Подробней про импорты здесь:
https://docs.python.org/3/tutorial/modules.html
#2to3#pep#basic
📍INDALU GAME RESERVE
Активности: прогулка и общение со слонами, сафари, проживание. Здесь нет хищников, но все равно интересно. Подробности и цены на сайте.
#активности#mosselbay#дорогасадов#gardenroute
📍ФЕРМА Wilgewandel.
Список активностей довольно обширный: прогулка на верблюдах, зиплайн, паровозик, водяные горки, контактный зоопарк, картинг, минигольф, прогулка в повозке с осликами, тир, педальные машинки, батут, лодки, хайкинг.
В общем, воображение наше разыгралось. По факту территория фермы небольшая и все довольно скромное, в фермерском стиле. Моим 9 и 13-леткам было интересно. 19-летке уже нет. Хотя, я видела и взрослых на активностях. Так что, как говорится, depends.
Подробности и локацию можно посмотреть на их сайте.
Фото и видео чтобы вы прониклись атмосферой 😃. Стейк, кстати, страусиный. От мяса я не в восторге - жесткое и волокнистое. Но потребность по белку на сегодня закрыла 👌
#gardenroute#дорогасадов#mosselbay#активности
On 8 December, at the event “South Africa: New Horizons for Tourism and Business,” the Yekaterinburg-based travel company Neo Tours will present South Africa as a promising destination for travelers. 🌍✈️
The company’s founder, Marina Ledenyova (pictured), has recently returned from an extensive grand tour across South Africa.
The Office of the Honorary Consul met with Marina to discuss the content of her upcoming presentation for the 8 December event. 🤝🇿🇦
📹 The video shows Marina’s favorite beach in the town of Mossel Bay — we will share more about it in an upcoming post!
#SouthAfrica#Tourism#Travel#NeoTours#Yekaterinburg#BusinessAndTourism#MosselBay#ExploreSA
Mossel Bay — a vibrant coastal town on South Africa’s Garden Route, located about 400 km east of Cape Town — is a compact adventure hub offering everything from relaxed sunset walks to high-adrenaline ocean thrills. 🌊🦈✨
Here are the top things to do in Mossel Bay:
1. Speed Boat & Tubing — Perfect for adrenaline lovers. Ride the waves on a tube or speed boat and feel the ocean power beneath you. 🚤
2. Surfing at Santos Beach — Learn the basics and catch your first waves at one of the area’s most iconic beaches. 🏄♂️
3. Skydiving / Tandem Skydiving — Experience a 10,000-ft free fall with breathtaking views of beaches and valleys. 🪂
4. Sandboarding — Glide down coastal dunes or join a 4x4 dune trip designed for thrill-seekers. 🏜
5. Pinnacle Point Golf — An 18-hole championship course overlooking the Indian Ocean. A paradise for golfers. ⛳️
6. Shark Cage Diving — Get up close with the legendary Great White Shark — safely, of course! 🦈
7. Dias Museum Complex — The second-largest provincial museum, dedicated to the history of exploration and the journey of Bartolomeu Dias. 🏛️
📹 Video: https://www.youtube.com/watch?v=HwlsknWmdfM
#SouthAfrica#GardenRoute#MosselBay#TravelSouthAfrica#AdventureTravel#BeachHoliday#ExploreSA