1.3. 语法支持
支持 python3 标准语法的子集。
1.3.1. 对象支持
| 语法 | 编译时 | 运行时 | Shell |
|---|---|---|---|
| 模块定义 | √ | - | - |
| 模块导入 | √ | √ | √ |
| 类定义 | √ | √ | √ |
| 类继承 | √ | √ | √ |
| 方法定义 | √ | √ | √ |
| 方法重载 | √ | √ | √ |
| 方法调用 | √ | √ | √ |
| 参数定义 | √ | √ | √ |
| 参数赋值 | √ | √ | √ |
| 对象新建 | √ | √ | √ |
| 对象销毁 | √ | √ | √ |
| 对象嵌套 | √ | √ | √ |
| 控制流 | √ | √ | √ |
1.3.2. Operator
| + | - | * | / | == | > | < | >= | <= | % | ** | // | != | & | >> | << | and | or | not | in | += | -= | *= | /= |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ |
1.3.3. Control flow
| Syntax | State |
|---|---|
| if | √ |
| while | √ |
| for in [list] | √ |
| for in range(a, b) | √ |
| for in [dict] | √ |
| if elif else | √ |
| for break/continue | √ |
| while break/continue | √ |
1.3.4. Module
| Syntax | Python Module | C Module |
|---|---|---|
| import [module] | √ | √ |
| import [module] as | √ | - |
| from [module] import [class/function>] | √ | - |
| from [module] import [class/function>] as | √ | - |
| from [module] import * | - | PikaObj Module Only |
1.3.5. List/Dict
| Syntax | State |
|---|---|
| l = list() | √ |
| l = [a, b, c] | √ |
| d = dict() | √ |
| d = {'a':x, 'b':y, 'c':z} | √ |
1.3.6. Slice
| Syntax | str | bytes | list |
|---|---|---|---|
| test[i] | √ | √ | √ |
| test[a : b] | √ | √ | √ |
| test[a :] | √ | √ | √ |
1.3.7. Function Arguments
| Syntax | State |
|---|---|
| Default Arguments | √ |
| Keyword Arguments | √ |
| Variable Positional Arguments (*args) | √ |
| Variable Keyword Arguments (**kwargs) | √ |
1.3.8. String Formatting
| Syntax | State |
|---|---|
| %-formatting | √ |
| str.format() | - |
| f-strings (formatted string literals) | - |
1.3.9. Comparison Operations
| Syntax | Number | List | Dictionary |
|---|---|---|---|
| Equal (==) | √ | - | - |
| Greater Than (>) | √ | - | - |
| Less Than (<) | √ | - | - |
| Greater Than or Equal To (>=) | √ | - | - |
| Less Than or Equal To (<=) | √ | - | - |
| Membership (in) | - | √ | √ (keys) |
| Non-membership (not in) | - | √ | √ (keys) |
| Identity (is) | √ | √ | √ |
| Non-identity (is not) | √ | √ | √ |
1.3.10. Exception
| Syntax | State |
|---|---|
| try: | √ |
| except: | √ |
| except [Exception]: | - |
| except [Exception] as [err]: | - |
| except: ... else: | - |
| raise: | √ |
| raise [Exception]: | - |
| finally: | - |
1.3.11. Context Managers
| Syntax | State |
|---|---|
| with statement | - |
| custom context managers (using enter and exit methods) | - |
1.3.12. Generators
| Syntax | State |
|---|---|
| generator functions (using 'yield') | - |
| generator expressions | - |