在ArcGIS中, Null 、 None 和字符串 "" 存在以下区别:
概念及适用范围
- Null :是Visual Basic(VB)等语言中的语法,用于表示缺失值或未知值。在ArcGIS中,可用于多种数据类型的字段,表示该字段值缺失或无效,如在地理数据库的表或要素类的属性字段中。不过一般认为它不是专门为处理Shapefile(shp)文件设计的,因为shp文件主要存储几何图形和属性信息,通常不用 Null 来表示特殊值。
- None :是Python语言中的语法,区分大小写,用于表示空值或不存在的值。在ArcGIS与Python结合使用的场景中,如使用ArcPy模块进行地理数据处理时会经常用到。它也不是直接针对shp文件的特定语法,更多用于Python编程中的变量赋值、函数返回值等情况,表示没有实际的值。
- 字符串 "" :是一个空字符串,属于字符串数据类型,在ArcGIS中可用于表示文本属性的空值情况,在处理shp文件的属性表时,如果某个文本字段的值为空,可能会用空字符串来表示。
存储和占用空间
- Null :在ArcGIS的数据存储中, Null 值一般占用较小空间,只需一个标记位来表明该值缺失。
- None :在Python环境中, None 对象会占用一定内存空间来存储其对象信息,但相比具体数据,空间占用较小。
- 字符串 "" :在内存中会为存储字符串对象本身及相关元数据分配空间,虽然不包含字符,但因有额外信息存储,空间占用比 Null 和 None 大。
运算和函数处理
- Null :参与ArcGIS的空间分析或数据处理运算时,通常使结果为 Null ,或遵循特定的空值处理规则。
- None :在Python中与其他数据运算,通常使运算结果为 None 或触发错误,依操作和函数实现而定。
- 字符串 "" :可参与字符串相关的运算和操作,如拼接。与数字等其他类型数据运算会触发类型错误,除非有特定的类型转换机制。
显示和可视化
- Null :在ArcGIS的属性表或数据显示中,常显示为空白或特殊符号,表示值缺失。
- None :在Python的交互环境或输出中,通常显示为 None 。
- 字符串 "" :在ArcGIS的属性表或数据显示中,如果是文本字段,可能显示为空白,但与 Null 的空白有本质区别。




