aardio 文档

py3 库模块帮助文档

py3 成员列表 #

Python 3 扩展库,
已自带绿色便携运行时,不用额外安装VC运行库。
导入库时可指定小版本号,例如 py3,py3.4,py3.6,py3.10 等。

py3 扩展库默认 Python 版本为 3.8.10。
Python 不同版本通常并不完全兼容,不建议随意更换运行时,
添加 Python 模块时也应使用相同版本运行时下安装的版本

如果需要在 Python 中使用 print 函数输出到控制台
请在导入库以前打开控制台

py3.DecRef(指针) #

减少引用计数

py3.IncRef(指针) #

增加引用计数

py3.addModule("字符串参数") #

如果不存在指定名字的模块就创建新模块
返回模块对象

py3.addModule() #

返回对象:py3ModuleObject

py3.addSiteDir() #

添加 site-packages 站点目录,
Python 也会在站点目录下查找模块,且支持该目录下的 *.pth 。
默认已添加安装模块的默认目录 "\py\site-packages",
site.USER_BASE 默认设为工程下的 /py 目录,不允许修改

py3.appendPath #

添加 Python 模块搜索目录,
也就是追加目录到 Python 中的 sys.path。

默认的模块搜索目录为『应用程序根目录』下的 /py 目录

py3.appendPath("搜索路径") #

添加 Python 模块搜索目录,
也就是追加目录到 Python 中的 sys.path 支持多个参数。
支持多参数指定多个要添加的路径

py3.builtin #

builtin 模块提供 Python 内置函数

返回对象:py3DictObject

py3.compile("字符串参数") #

编译字符串或py文件
返回代码对象
可选增加第二个参数
可选增加第二个PyCompilerFlags参数

py3.compile() #

返回对象:py3CodeObject

py3.eval("python表达式") #

main 模块中计算表达式的值

py3.eval() #

返回对象:py3Object

py3.exec #

运行 Python 代码,
参数也可以指定内嵌资源文件路径
注意需要引用的 Python 模块应当放在 /py 目录下,
aardio 路径以斜杠或反斜杠开始则表示应用程序根目录下的路径,
应用程序根目录开发时为 aardio 工程目录,发布后为 EXE 文件所在目录

py3.exec("Python代码",flags,...) #

在默认的__main__名字空间运行 Python 代码,成功返回 true。
在导入 py3 扩展库前调用 console.open 可查看 Python 错误信息。

参数@1如果首字符为单个斜杠或反斜杠开始的文件路径:
└── 可支持工程资源目录下的文件。
└── 如果文件后缀为 ".aardio" 则支持 aardio 模板语法。

可选使用参数 @2 设置 PyCompilerFlags 参数,
参数@2不必指定,用法参考 Python 文档。

参数@3 开始可选指定一个或多个启动参数,
注意不必像 py3.setArgv 函数那样在首个参数中指定启动程序路径

py3.execf #

首先调用 string.format 格式化代码
然后执行格式化后的代码

py3.execf("Python代码",...) #

首先调用 string.format 格式化参数并生成代码,
然后执行格式化后的代码。

详细用法请参考
格式化字符串

py3.execfile #

运行 *.py 文件
注意需要引用的 Python 模块应当放在 /py 目录下,
aardio 以斜杠或反斜杠开始则表示应用程序根目录下的路径,
应用程序根目录开发时为 aardio 工程目录,发布后为 EXE 文件所在目录

py3.execfile("Python文件路径",flags,...) #

运行 *.py 文件,成功返回true,
参数@1如果以斜杠或反斜杠开始则表示应用程序根目录下的路径,
应用程序根目录开发时为 aardio 工程目录,发布后为 EXE 文件所在目录,
可选用 参数@2 设置 PyCompilerFlags 参数,
可选增加任意个启动参数,即 sys.argv 参数

py3.export() #

参数应指定 aardio 对象,
table、cdata、class、function 类型参数转换为 Python 代理对象,
支持导出 aardio 迭代器,注意迭代器返回 tuple 元组,
其他类型参数直接返回不作转换。

py3.export 创建的代理对象会绑定原始的 aardio 对象,
在 Python 中调用代理对象时都会转发调用到 aardio 对象,
对返回代理对象的所有调用也会同样经过 py3.export 处理。

未经 py3.export 处理的 aardio 对象传入 Python 时,
只会复制可能复制的值为纯 Python 对象,且不再关联原始对象

返回对象:py3Object

py3.float() #

调用 Python 的 float 函数,
参数可指定 aardio 或 Python 中可转为浮点数的对象,
创建 Python 浮点数并返回 py.object 对象,
返回的 Python 对象支持 +,-,*,/,%,<,>,<=,>=,== 等运算符

返回对象:py3Object

py3.getDict(模块指针) #

相当于Python模块对象的__dict__ 属性,得到模块名称空间下的字典对象

py3.getPath() #

返回默认搜索路径
以分号隔开

py3.getProgramName() #

返回程序名

py3.getPythonHome() #

返回python目录

py3.globals() #

全局名字空间

返回对象:py3DictObject

py3.import("字符串参数") #

导入模块,相当于Python内建函数__import__()
返回模块指针

py3.import() #

返回对象:py3ModuleObject

py3.int() #

调用 Python 的 int 函数,
参数可指定 aardio 或 Python 中可转为整型数值的对象,
创建 Python 整型数并返回 py.object 对象,
返回的 Python 对象支持 +,-,*,/,%,<,>,<=,>=,== 等运算符,
aardio 数值默认会转换为 Python 中的浮点数,
如果参数需要用到整型数,可使用此函数创建整型数,
也可以在 Python 代码中调用 int 函数转换

返回对象:py3Object

py3.json #

Python的json模块

返回对象:py3ModuleObject

py3.lasterr() #

如果 Python 已发生异常,
返回错误信息,以及异常类名称,
调用此函数会清除异常

有些 Python 输出到控制台的错误信息这个函数获取不到。
必须在导入 py3 扩展库以前调用 console.open 才能看到

py3.locals() #

局部名字空间

返回对象:py3DictObject

py3.lock( 回调函数,... ) #

py3.lock( 回调函数,...lock(  
    function(){  
        /*释放GIL以后所有调用python代码必须写到这里*/     
    }  
)

py3.main #

Python的__main__模块

返回对象:py3ModuleObject

py3.mainThread #

当前是否 Python 主线程
Python 有全局锁所以无法实现真正的多线程,
为避免不必要的麻烦,建议尽量在单线程里使用 Python

py3.occurred() #

Python 是否发生异常

py3.releaseThread() #

释放GIL线程锁
调用此函数以后,所有调用python的代码必须在py3.lock中运行
否则将导致进程异常退出,请小心使用,
python没有真正多线程,尽可能不要使用此函数以带来不必要的麻烦

py3.run(...) #

直接输入启动参数启动 Python 解释器
类似调用 python.exe

注意 py3.10 扩展库会在执行此函数时重置 sys.path
低于 py3.10 版本不会重置 sys.path

py3.set() #

调用 Python 的 set 函数,
参数可指定 aardio 或 Python 中可转为集合的对象,
创建 Python 集合并返回 py.object 对象

返回对象:py3Object

py3.setArgv("启动参数") #

设置sys.argv启动参数,
参数可以是任意个字符串参数,
也可传入一个字符串数组。

注意第 1 个参数应当指定启动程序路径,
Python 从第 2 个参数开始取实际参数

py3.setPath() #

设置默认搜索路径
以分号隔开

py3.setProgramName("字符串参数") #

修改程序名

py3.setPythonHome("字符串参数") #

改变python应用程序目录

py3.str() #

调用 Python 的 str 函数,
参数可指定 aardio 或 Python 中可转为字符串的对象,
创建 Python 整型数并返回 py.object 对象,
py.object 对象都提供 toString 函数可转为 aardio 字符串,
也可以在 aardio 中使作为 tostring 函数的参数转为普通字符串

返回对象:py3Object

py3.sysObject("名字") #

获取sys对象

py3.sysObject() #

返回对象:py3Object

py3.toString() #

参数指定 py.object 对象或 pyObject 原生指针,
调用 Python 内置函数 str 转换为字符串对象,
最后转换并返回为 aardio 字符串
失败返回null

此函数不会检查参数类型是否正确,
参数如果不是 py.object 对象或 pyObject 指针则会导致异常或崩溃

py3.version #

返回python内核版本
字符串值

::Python3 成员列表 #

::Python3.* #

可输入API函数名并直接调用

::Python3.api("Py输入函数名字","void()" ) #

声明加载的Python3 API函数

py3.export 成员列表 #

注意只能在 Python 启动线程中使用此功能,
export 作为名字空间使用时,
export 名字空间的 aardio 成员对象,
可在 Python 中使用 import 语句导入

export 作为类构造函数使用时,
可导出 aardio 对象为 Python 代理对象,
调用 Python 代理对象会转发到 aardio

py3.export.* #

{ __/*这里定义的成员函数可在 Python 中调用*/ }

py3CodeObject 成员列表 #

py3CodeObject.eval() #

运行python代码并返回值
可选增加两个参数,指定全局名字空间,局部名字空间
名字空间必须是py3.dict()字典对象

返回对象:py3Object

py3CodeObject.exec("字符串参数") #

运行python代码并返回模块对象

返回对象:py3ModuleObject

全局常量

::Python3 #

加载的Python3.DLL模块

自动完成常量

_Py_eval_input=258
_Py_file_input=257
_Py_single_input=256

Markdown 格式