mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 11:30:18 +00:00
...
...
This commit is contained in:
parent
f1ddde5599
commit
d987b70873
@ -16,24 +16,29 @@ game scripting, not cpython for general purpose programming.**
|
||||
|
||||
pkpy supports most of the syntax and semantics of python.
|
||||
For performance and simplicity, some features are not implemented, or behave differently.
|
||||
The easiest way to test a feature is to [try it on your browser](https://pocketpy.dev/static/web/).
|
||||
|
||||
## Unimplemented features
|
||||
|
||||
1. `**kwargs` in function definition.
|
||||
2. `__getattr__` and `__setattr__`.
|
||||
3. Descriptor protocol `__get__` and `__set__`. However, `@property` is implemented.
|
||||
4. `__slots__` in class definition.
|
||||
5. `import` module from a directory with `__init__.py`.
|
||||
6. One element tuple. `(1,)` is not supported.
|
||||
7. Unpacking in `list` and `dict` literals, i.e. `[1, 2, *a]`.
|
||||
7. Unpacking in `list` and `dict` literals, e.g. `[1, 2, *a]`.
|
||||
8. Access the exception object in try..except.
|
||||
9. `else` clause in try..except.
|
||||
10. Inplace methods like `__iadd__` and `__imul__`.
|
||||
11. `__del__` in class definition.
|
||||
|
||||
## Different behaviors
|
||||
|
||||
1. positional and keyword arguments are strictly evaluated.
|
||||
2. When a generator is exhausted, `StopIteration` is returned instead of raised.
|
||||
3. `++i` and `--j` is an increment/decrement statement, not an expression.
|
||||
4. `int` and `float` are not subclasses of `bool`.
|
||||
4. `int` does not derive from `bool`.
|
||||
5. `int` is not of unlimited precision. In 32 bit system, `int` and `float` is 30 bit; in 64 bit system, they are both 62 bit.
|
||||
6. `__ne__` is not required. Define `__eq__` is enough.
|
||||
7. Raw string cannot have boundary quotes in it, even escaped. See [#55](https://github.com/blueloveTH/pocketpy/issues/55).
|
||||
8. In a starred unpacked assignment, e.g. `a, b, *c = x`, the starred variable can only be presented in the last position. `a, *b, c = x` is not supported.
|
Loading…
x
Reference in New Issue
Block a user