Вторая по частоте 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
🤔#ARB Хейт в сторону Arbitrum…
В сети сейчас бурно обсуждают недавние действия проекта по блокировке 30,766 ETH ($71,1m), связанных с эксплойтом KelpDAO.
Некоторые громко кричат о «предательстве децентрализации», другие – выступают в поддержку Arbitrum.
➤ Duo Nine (YCC): Удивительное развитие событий – в Arbitrum заморозили и изъяли украденные средства из-за эксплойта KelpDAO, повлиявшего на AAVE. Хороший шаг для пострадавших пользователей, плохая новость для децентрализации. Это создает прецедент, при котором при наличии хорошего обоснования любые активы на Arbitrum могут быть изъяты из вашего кошелька.
➤ Джастин Сан (TRON): Ок. Я официально объявляю: самый децентрализованный блокчейн в мире – это TRON.
➤ Зак Райнс (Chainlink): Сторонники децентрализации, безусловно, сочтут это спорным решением. Однако лично я считаю, что это был правильный шаг, учитывая обстоятельства. Сложный выбор, без сомнения.
➤ Дэн Робинсон (Paradigm): Трудный выбор, но кажется, что это правильное решение. Децентрализация – это не договор о самоубийстве.
➤ Стивен Голдфедер (Offchain): Секвенсер Arbitrum не имеет возможности перемещать средства и не причастен к принятому решению. Это развеивает миф о централизации на уровне секвенсера. Решение принял Security Council – 12 избранных членов (9 из 12 голосов). Совет независим от Arbitrum Foundation и Offchain Labs (только 1 член из OCL).
Crypto Headlines