Basic Features

The following table shows the basic features of pkpy with respect to cpython.

Name Example Supported
If Else if..else..elif ✅
Loop for/while/break/continue ✅
Function def f(x,*args,y=1): ✅
Subclass class A(B): ✅
List [1, 2, 'a'] ✅
ListComp [i for i in range(5)] ✅
Slice a[1:2], a[:2], a[1:] ✅
Tuple (1, 2, 'a') ✅
Dict {'a': 1, 'b': 2} ✅
F-String f'value is {x}' ✅
Unpacking a, b = 1, 2 ✅
Star Unpacking a, *b = [1, 2, 3] ✅
Exception raise/try..except.. ✅
Dynamic Code eval()/exec() ✅
Reflection hasattr()/getattr()/setattr() ✅
Import import/from..import ✅
Context Block with <expr> as <id>: ✅
Type Annotation def f(a:int, b:float=1) ✅
Generator yield i ✅
Decorator @cache ✅
Match Case match code: case 200: ✅

Supported magic methods

Unary operators

  • __repr__
  • __str__
  • __hash__
  • __len__
  • __iter__
  • __next__
  • __neg__

Logical operators

  • __eq__
  • __lt__
  • __le__
  • __gt__
  • __ge__
  • __contains__

Binary operators

  • __add__
  • __radd__
  • __sub__
  • __rsub__
  • __mul__
  • __rmul__
  • __truediv__
  • __floordiv__
  • __mod__
  • __pow__
  • __matmul__
  • __lshift__
  • __rshift__
  • __and__
  • __or__
  • __xor__
  • __invert__

Indexer

  • __getitem__
  • __setitem__
  • __delitem__

Specials

  • __new__
  • __init__
  • __call__
  • __divmod__
  • __enter__
  • __exit__
  • __name__
  • __all__