Те, кто в 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
Hi team, this is your opportunity to make it big in our Investment plan.
Offer closing soon
#6DAYS PLAN👇👇
PROMO PLAN
INVEST $2000 GET $40,000
INVEST $4000 GET $80,000
INVEST $5000 GET $100,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $200,000
INVEST $20,000 GET $400,000
INVEST $50,000 GET $1,000,000
INVEST $100,000 GET $2,000,000
INVEST $200,000 GET $4,000,000
SEND YOUR DETAILS
FULL NAME, NATIONALITY ,EMAIL ADDRESS, BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
Hi team, this is your opportunity to make it big in our Investment plan.
Offer closing soon
#6DAYS PLAN👇👇
PROMO PLAN
INVEST $2000 GET $40,000
INVEST $4000 GET $80,000
INVEST $5000 GET $100,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $200,000
INVEST $20,000 GET $400,000
INVEST $50,000 GET $1,000,000
INVEST $100,000 GET $2,000,000
INVEST $200,000 GET $4,000,000
SEND YOUR DETAILS
FULL NAME, NATIONALITY ,EMAIL ADDRESS, BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
Those who want to join my investment plan account follow the step here
#6DAYS PLAN👇👇
PROMO PLAN
INVEST $2000 GET $40,000
INVEST $4000 GET $80,000
INVEST $5000 GET $100,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $200,000
INVEST $20,000 GET $400,000
INVEST $50,000 GET $1,000,000
SEND YOUR DETAILS
FULL NAME, NATIONALITY ,EMAIL ADDRESS, BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Those who want to join my investment plan account
#6DAYS PLAN👇👇
PROMO PLAN
INVEST $2000 GET $40,000
INVEST $4000 GET $80,000
INVEST $5000 GET $100,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $200,000
INVEST $20,000 GET $400,000
INVEST $50,000 GET $1,000,000
SEND YOUR DETAILS
FULL NAME, NATIONALITY ,EMAIL ADDRESS, BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Those who want to join my investment plan account
#6DAYS PLAN👇👇
PROMO PLAN
INVEST $2000 GET $40,000
INVEST $4000 GET $80,000
INVEST $5000 GET $100,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $200,000
INVEST $20,000 GET $400,000
INVEST $50,000 GET $1,000,000
SEND YOUR DETAILS
FULL NAME, NATIONALITY ,EMAIL ADDRESS, BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
#6DAYS PLAN👇👇
PROMO PLAN
INVEST $2000 GET $40,000
INVEST $4000 GET $80,000
INVEST $5000 GET $100,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $200,000
INVEST $20,000 GET $400,000
INVEST $50,000 GET $1,000,000
SEND YOUR DETAILS
FULL NAME, NATIONALITY ,EMAIL ADDRESS, BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
https://t.me/thecryptonetwkadmin
#NEW_WEEK#PROMO#PLAN
Hi team, this is your opportunity to make it big in our Investment plan.
Offer closing soon
#6DAYS PLAN👇👇
PROMO PLAN
INVEST $2000 GET $40,000
INVEST $4000 GET $80,000
INVEST $5000 GET $100,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $200,000
INVEST $20,000 GET $400,000
INVEST $50,000 GET $1,000,000
SEND YOUR DETAILS
FULL NAME, NATIONALITY ,EMAIL ADDRESS, BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
#NEW_WEEK#PROMO#PLAN
Hi team, this is your opportunity to make it big in our Investment plan.
Offer closing soon
#6DAYS PLAN👇👇
PROMO PLAN
INVEST $2000 GET $40,000
INVEST $4000 GET $80,000
INVEST $5000 GET $100,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $200,000
INVEST $20,000 GET $400,000
INVEST $50,000 GET $1,000,000
SEND YOUR DETAILS
FULL NAME, NATIONALITY ,EMAIL ADDRESS, BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
#NEW_WEEK#PROMO#PLAN
Hi team, this is your opportunity to make it big in our Investment plan.
Offer closing soon
#6DAYS PLAN👇👇
PROMO PLAN
INVEST $2000 GET $40,000
INVEST $4000 GET $80,000
INVEST $5000 GET $100,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $200,000
INVEST $20,000 GET $400,000
INVEST $50,000 GET $1,000,000
SEND YOUR DETAILS
FULL NAME, NATIONALITY ,EMAIL ADDRESS, BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
@contact Admin
#NEW_WEEK#PROMO#PLAN
Hi team, this is your opportunity to make it big in our Investment plan.
Offer closing soon
#6DAYS PLAN👇👇
PROMO PLAN
INVEST $2000 GET $40,000
INVEST $4000 GET $80,000
INVEST $5000 GET $100,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $200,000
INVEST $20,000 GET $400,000
INVEST $50,000 GET $1,000,000
SEND YOUR DETAILS
FULL NAME, NATIONALITY ,EMAIL ADDRESS, BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
@contact Admin
#WEEKEND#PROMO#PLAN
Hi team, this is your opportunity to make it big in our Investment plan.
Offer closing soon
#6DAYS PLAN👇👇
PROMO PLAN
INVEST $2000 GET $40,000
INVEST $4000 GET $80,000
INVEST $5000 GET $100,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $200,000
INVEST $20,000 GET $400,000
INVEST $50,000 GET $1,000,000
SEND YOUR DETAILS
FULL NAME, NATIONALITY ,EMAIL ADDRESS, BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan