Inbuilt Store Operators
Inbuilt Store Operators¶
As a convenience we make a select set of Python operators reactive for Stores. This means that if you use these operators on Store
objects, the result will be a Store
object that is reactive. For example, the +
operator is reactive:
x = mk.Store(1)
y = x + 1
# The `+` operator is reactive.
# y is a Store and will update when x updates.
print("y:", type(y), y.get())
A list of reactive operators are listed below:
name |
symbol |
example |
---|---|---|
Addition |
+ |
x + y |
Subtraction |
- |
x - y |
Multiplication |
* |
x * y |
Division |
/ |
x / y |
Floor Division |
// |
x // y |
Modulo |
% |
x % y |
Exponentiation |
** |
x ** y |
Add & Assign |
+= |
x+=1 |
Subtract & Assign |
-= |
x-=1 |
Multiply & Assign |
*= |
x*=1 |
Divide & Assign |
/= |
x/=1 |
Floor Divide & Assign |
//= |
x//=1 |
Modulo & Assign |
%= |
x%=1 |
Exponentiate & Assign |
**= |
x**=1 |
Power & Assign |
**= |
x**=1 |
Bitwise Left Shift & Assign |
<<= |
x<<=1 |
Bitwise Right Shift & Assign |
>>= |
x>>=1 |
Bitwise AND & Assign |
&= |
x&=1 |
Bitwise XOR & Assign |
^= |
x^=1 |
Bitwise OR & Assign |
|= |
x|=1 |
Bitwise Left Shift |
<< |
x << y |
Bitwise Right Shift |
>> |
x >> y |
Bitwise AND |
& |
x & y |
Bitwise XOR |
^ |
x ^ y |
Bitwise OR |
| |
x | y |
Bitwise Inversion |
~ |
~x |
Less Than |
< |
x < y |
Less Than or Equal |
<= |
x <= y |
Equal |
== |
x == y |
Not Equal |
!= |
x != y |
Greater Than |
> |
x > y |
Greater Than or Equal |
>= |
x >= y |
Get Item |
[key] |
x[0] |
Get Slice |
[start:stop] |
x[0:10] |
Store operations are reactive
Don’t do in-place operations without calling .set in an endpoint
interface with magic