Те, кто в Python не первый день, хорошо знают, что на число можно умножить не только число, но и другие типы. Главное, чтобы у этих типов была реализация такой операции.
# list
>>> [1] * 3
[1, 1, 1]
# tuple
>>> (2, 3) * 3
(2, 3, 2, 3, 2, 3)
# string
>>> "A" * 3
"AAA"
Так работает полиморфизм стандартных типов. Интересно здесь то, что это сработает и в том случае, когда порядок операндов обратный. То есть int умножить на [тип].
# list
>>> 3 * [1]
[1, 1, 1]
# tuple
>>> 3 * (2, 3)
(2, 3, 2, 3, 2, 3)
# string
>>> 3 * "A"
"AAA"
Если хотите реализовать такое поведение в ваших классах то следует помнить два момента:
1. Если множитель справа, то вам нужно реализовать метод __mul__, наш класс это первый операнд, то есть слева.
myType * 3
2. Если множитель слева, то вам нужно реализовать метод __rmul__, наш класс это второй операнд, справа.
3* myType
Всё тоже самое можно делать и для других математических операторов. И если в этом примере действие и результат будут фактически одинаковыми, то бывают ситуации, когда это не так.
Например, при умножении матриц имеет значение порядок операндов.
Для других операторов, таких как деление или сдвиг, очень важно кто с какой стороны находится.
>>> 2/4, 4/2
(0.5, 2.0)
>>> 2<<3, 3<<2
(16, 12)
>>> 100%15, 15%100
(10, 15)
#tricks#basic
Grand #Ethiopian Renaissance Dam: how #Africa’s largest hydropower project Is powering #Ethiopia’s future
A detailed examination of the Grand Ethiopian Renaissance Dam – its construction, specifications, commissioning, regional impact, and remaining challenges.
The Grand Ethiopian Renaissance Dam (#GERD) is the largest hydropower project in Africa. Located on the #Blue_Nile in Ethiopia’s #Benishangul-Gumuz region, about 14km from the Sudanese border, the project has been delivered by Ethiopian Electric Power (#EEP) with major civil works undertaken by #Webuild Group (formerly #Salini Impregilo).
The objective of the dam is to increase Ethiopia’s electricity generation capacity, reduce dependence on imported energy, and support long-term industrial and economic development.
Construction began in 2011, and Ethiopia officially inaugurated......
Read more: https://www.waterpowermagazine.com/analysis/grand-ethiopian-renaissance-dam-how-africas-largest-hydropower-project-is-powering-ethiopias-future/?cf-view