mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 03:20: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.
|
pkpy supports most of the syntax and semantics of python.
|
||||||
For performance and simplicity, some features are not implemented, or behave differently.
|
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
|
## Unimplemented features
|
||||||
|
|
||||||
1. `**kwargs` in function definition.
|
1. `**kwargs` in function definition.
|
||||||
2. `__getattr__` and `__setattr__`.
|
2. `__getattr__` and `__setattr__`.
|
||||||
3. Descriptor protocol `__get__` and `__set__`. However, `@property` is implemented.
|
3. Descriptor protocol `__get__` and `__set__`. However, `@property` is implemented.
|
||||||
4. `__slots__` in class definition.
|
4. `__slots__` in class definition.
|
||||||
5. `import` module from a directory with `__init__.py`.
|
5. `import` module from a directory with `__init__.py`.
|
||||||
6. One element tuple. `(1,)` is not supported.
|
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.
|
8. Access the exception object in try..except.
|
||||||
9. `else` clause in try..except.
|
9. `else` clause in try..except.
|
||||||
10. Inplace methods like `__iadd__` and `__imul__`.
|
10. Inplace methods like `__iadd__` and `__imul__`.
|
||||||
11. `__del__` in class definition.
|
11. `__del__` in class definition.
|
||||||
|
|
||||||
## Different behaviors
|
## Different behaviors
|
||||||
|
|
||||||
1. positional and keyword arguments are strictly evaluated.
|
1. positional and keyword arguments are strictly evaluated.
|
||||||
2. When a generator is exhausted, `StopIteration` is returned instead of raised.
|
2. When a generator is exhausted, `StopIteration` is returned instead of raised.
|
||||||
3. `++i` and `--j` is an increment/decrement statement, not an expression.
|
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.
|
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.
|
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