帮助中心
数据类型映射关系

Cube为基于用户分层设计理念、自研的、面向办公自动化领域的低代码编程语言,在数据类型方面与Python语言有差异。在Python模式中使用Cube库时,底层代码会进行装箱、拆箱操作,本文将为您介绍Cube与Python的数据类型及对应关系。

# 基本概念

装箱
将Python常规类型(如int,str等)数据转换成Cube常规类型数据,或者是将Cube非常规类型数据对外生成唯一的ref值。

拆箱
将Cube常规类型数据转换成Python常规类型(如int,str等)数据,或者是将ref值恢复为Cube非常规类型数据。

可变数据类型
当该数据类型的对应变量的值发生了改变,对应的内存地址不发生改变。

不可变数据类型
当该数据类型的对应变量的值发生了改变,对应的内存地址也会发生改变。

# Cube数据类型

Cube函数支持以下10种数据类型:

  • Cube.Lang.Number:数字类型
  • Cube.Lang.Boolean:布尔类型
  • Cube.Lang.String:文本类型
  • Cube.Lang.List:列表类型
  • Cube.Lang.DataTable:数据表类型
  • Cube.Lang.KeyValue:键值对类型
  • Cube.Lang.Binary:二进制编码
  • Cube.Lang.DateTime:日期时间类型
  • Cube.Lang.Null:空对象类型
  • Cube.Lang.PythonObject:Python类型

# Python数据类型

Python 3中定义了以下8种数据类型:

  • 数字(number)
    Python 3支持 int、float两种数字类型。

  • 布尔型(bool)
    True和False为布尔型关键字,值为1和0,可以和数字相加。

  • 字符串(str)
    字符串是以单引号'或双引号""括起来的任意文本。如果'本身也是一个字符,可以用""括起来,例如"I'm OK"表示I,',m,空格,O,K6个字符;如果字符串内部既包含'又包含"可以用转义字符\来标识,例如'I\'m \"OK\"!'表示的字符串内容是I'm "OK"!;转义字符\可以转义很多字符,例如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\。如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义,例如r'\\\t\\'表示\\\t\\

  • 列表(list)
    列表是写在方括号[]之间、用逗号,分隔开的有序元素列表。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(即嵌套),例如list1 = ['CubeRPA', 123 , 6.30, '壹沓科技', 6.4]

  • 元组(tuple)
    元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 ()里,元素之间用逗号,隔开。元组中的元素类型也可以不相同,例如tuple1 = ('CubeRPA', 123 , 6.30, '壹沓科技', 6.4)

  • 集合(set)
    集合(set)是由一个或多个形态各异的大小整体组成的,构成集合的事物或对象称为元素或成员,基本功能是进行成员关系测试和删除重复元素。可以使用大括号{}或者set()函数创建集合,创建一个空集合必须用set()而不是 {},因为{}用于创建一个空字典。集合示例:set1 = {'Tom', 1, 'Mary', 'Tom', 'Jack', 'Rose'}

  • 字典(dictionary)
    字典是一种映射类型,用大括号{}标识,它是一个无序的键(key) : 值(value)对集合。键(key)必须使用不可变类型,并且在同一个字典中,键(key)必须是唯一的。字典示例:

说明:Python 3.6及以上版本字典有序。

  • 字节类型(bytes)
    字节类型可用于处理底层应用(例如socket编程),声明方式为在字符串的字面量表示前加上b字母,例如bt = b"Hello World"

其中:

  • 不可变数据类型(5个):数字(number)、字符串(str)、元组(tuple)、字节类型(bytes)、布尔型(bool)
  • 可变数据类型(3个):列表(list)、集合(set)、字典(dictionary)

# 装箱拆箱

Cube Python
Cube.Lang.Number
  • numbers.Number
  • int
  • float
  • numpy.int
Cube.Lang.Boolean bool
Cube.Lang.String str
Cube.Lang.List list
Cube.Lang.DataTable list<list>
Cube.Lang.KeyValue dictionary
Cube.Lang.Binary bytes
Cube.Lang.DateTime datetime.datetime
Cube.Lang.Null None
Cube.Lang.PythonObject

说明:

  • None表示空值,它是一个特殊Python对象,类型是NoneType。
  • Cube.Lang.PythonObject用于承接⽆Cube类型映射的Python数据类型。该类型数据只能在调用Python文件组件中作为参数传入代码使用,在其他可视化组件使用时会在运行过程中提示Cube.PythonObject类型数据只可以在调用Python组件中作为入参的数据传入Pytho代码进行使用的错误。

最近更新时间: { "value": "2023-02-16", "effect": true }