MySQL Shell 9.0  /  ...  /  创建用户定义的 MySQL Shell 全局对象

10.2.1 创建用户定义的 MySQL Shell 全局对象

要创建一个新的 MySQL Shell 全局对象作为扩展对象的入口点,首先使用内置的 shell.createExtensionObject() 函数(在 JavaScript 中)或 shell.create_extension_object() 函数(在 Python 中)创建一个新的顶级扩展对象

shell.createExtensionObject()

然后通过调用 shell.registerGlobal() 方法(在 JavaScript 中)或 shell.register_global() 方法(在 Python 中)将此顶级扩展对象注册为 MySQL Shell 全局对象。该方法的语法如下:

shell.registerGlobal(name, object[, definition])

其中

  • name 是一个字符串,表示全局对象的名称(以及类)。该名称必须是有效的脚本标识符,因此第一个字符必须是字母或下划线字符,后面可以跟任意数量的字母、数字或下划线字符。该名称在你的 MySQL Shell 安装中必须是唯一的,因此它不能是内置 MySQL Shell 全局对象的名称(例如,dbdbaclustersessionshellutil),并且也不能是你在以前为用户定义的 MySQL Shell 全局对象所使用的名称。以下示例展示了如何在注册全局对象之前检查该名称是否已存在。

    重要

    你在注册全局对象时使用的名称会在你访问 JavaScript 和 Python 模式中的对象时原样使用。因此,为全局对象使用一个简单的单字名称(例如,ext)是一个很好的做法。如果你使用驼峰式或蛇形命名法(例如,myCustomObject)注册全局对象,那么在使用全局对象时,必须按照注册时的名称指定该名称。只有成员的名称会以语言适当的方式处理。

  • object 是你将注册为 MySQL Shell 全局对象的扩展对象。你只能注册一次扩展对象。

  • definition 是一个可选的字典,其中包含要在 MySQL Shell 帮助系统中提供的全局对象的帮助信息。该字典包含以下键

    • brief (字符串,可选): 要作为帮助信息提供的全局对象的简短描述。

    • details (字符串列表,可选): 要作为帮助信息提供的全局对象的详细描述。