hutool.core.util.object

Python port of Java Hutool’s ObjectUtil.

对象工具类,提供对象比较、空值判断、默认值处理、类型判断等常用对象工具方法。

Module Contents

Classes

ObjectUtil

对象工具类,对应 Java cn.hutool.core.util.ObjectUtil

Data

API

hutool.core.util.object.__all__ = ['ObjectUtil']
class hutool.core.util.object.ObjectUtil

对象工具类,对应 Java cn.hutool.core.util.ObjectUtil

static equals(obj1: Any, obj2: Any) bool

比较两个对象是否相等,null安全。 当两对象均为None时返回True,当其中之一为None时返回False。

参数:
  • obj1 – 对象1

  • obj2 – 对象2

返回:

是否相等

static not_equal(obj1: Any, obj2: Any) bool

比较两个对象是否不等,null安全。

参数:
  • obj1 – 对象1

  • obj2 – 对象2

返回:

是否不等

static length(obj: Any) int

获取对象长度,支持 str、list、tuple、dict、bytes 等可计算长度的对象。 当对象为None时返回0。

参数:

obj – 对象

返回:

长度

static contains(obj: Any, element: Any) bool

对象中是否包含元素。 支持的类型: - str: 检查是否包含子串 - dict: 检查是否包含key - set: 检查是否包含元素 - list/tuple/其他可迭代对象: 检查是否包含元素

当对象为None时返回False。

参数:
  • obj – 对象

  • element – 元素

返回:

是否包含

static is_null(obj: Any) bool

检查对象是否为None。

参数:

obj – 对象

返回:

是否为None

static is_not_null(obj: Any) bool

检查对象是否不为None。

参数:

obj – 对象

返回:

是否不为None

static is_empty(obj: Any) bool

检查对象是否为空(None或空容器)。 支持 str、list、tuple、dict、set、frozenset、bytes、bytearray。 对于非上述类型,如果为None则返回True,否则返回False。

参数:

obj – 对象

返回:

是否为空

static is_not_empty(obj: Any) bool

检查对象是否为非空。

参数:

obj – 对象

返回:

是否为非空

static default_if_null(obj: Any, default_value: Any) Any

如果obj为None,返回默认值,否则返回obj本身。

参数:
  • obj – 对象

  • default_value – 默认值

返回:

对象或默认值

static default_if_empty(obj: Any, default_value: Any) Any

如果obj为空(None或空容器),返回默认值,否则返回obj本身。

参数:
  • obj – 对象

  • default_value – 默认值

返回:

对象或默认值

static default_if_blank(obj: Optional[str], default_value: str) str

如果字符串为空白(None、空串或纯空白),返回默认值。

参数:
  • obj – 字符串对象

  • default_value – 默认值

返回:

字符串或默认值

static clone(obj: Any) Any

深拷贝对象。当对象为None时返回None。

参数:

obj – 对象

返回:

深拷贝后的对象

static is_basic_type(obj: Any) bool

是否为基本类型,包括 int、float、complex、bool、str、bytes、None。

参数:

obj – 对象

返回:

是否为基本类型

static compare(c1: Any, c2: Any) int

比较两个对象的大小。 当c1为None时,c2为None返回0,否则返回-1。 当c2为None时,返回1。 两者均非None时使用比较运算符。

与Java Comparable接口行为一致: - c1 == c2 -> 0 - c1 < c2 -> -1 - c1 > c2 -> 1

参数:
  • c1 – 对象1

  • c2 – 对象2

返回:

比较结果,0表示相等,-1表示c1小于c2,1表示c1大于c2

static to_string(obj: Any, default: str = '') str

将对象转为字符串,当对象为None时返回默认值。

参数:
  • obj – 对象

  • default – 默认值

返回:

字符串

static has_null(*args: Any) bool

检查参数中是否有None。 当没有参数传入时返回False。

参数:

args – 参数列表

返回:

是否包含None

static has_empty(*args: Any) bool

检查参数中是否有空值(None或空容器)。 当没有参数传入时返回False。

参数:

args – 参数列表

返回:

是否包含空值

static is_all_empty(*args: Any) bool

检查是否全部为空。 当没有参数传入时返回True。

参数:

args – 参数列表

返回:

是否全部为空

static is_all_not_empty(*args: Any) bool

检查是否全部为非空。 当没有参数传入时返回True。

参数:

args – 参数列表

返回:

是否全部为非空

static clone_if_possible(obj)

如果可能则克隆对象。

对 list/dict 进行深拷贝,其他对象原样返回。

参数:

obj – 对象

返回:

克隆后的对象

static is_valid_if_number(obj) bool

如果对象是数字则判断是否有效(非 NaN、非 Inf)。

参数:

obj – 对象

返回:

是否有效

static default_if_null_supplier(obj, supplier)

如果对象为 None 则使用 supplier 获取默认值。

参数:
  • obj – 对象

  • supplier – 供应函数

返回:

对象或供应函数的返回值

static default_if_empty_supplier(obj, supplier)

如果对象为空则使用 supplier 获取默认值。

参数:
  • obj – 对象

  • supplier – 供应函数

返回:

对象或供应函数的返回值

static default_if_blank_supplier(obj: Any, supplier) Any

如果对象为空白字符串则使用 supplier 获取默认值。

参数:
  • obj – 对象

  • supplier – 供应函数

返回:

对象或供应函数的返回值

static empty_count(*objects: Any) int

统计参数中空值的个数。

空值定义:None、空字符串””、空集合(list/tuple/dict/set 长度为0)。

参数:

objects – 待统计的对象列表

返回:

空值个数

static get_attr_safe(obj: Any, attr: str, default: Any = None) Any

安全获取对象属性,不存在时返回默认值。

参数:
  • obj – 对象

  • attr – 属性名

  • default – 默认值

返回:

属性值或默认值

static unpack_to_dict(obj: Any, fields: Optional[list] = None) dict

将对象解包为字典。

若指定了 fields,则仅提取指定字段。

参数:
  • obj – 对象(支持 dataclass、类实例、dict)

  • fields – 指定字段列表,为 None 时提取所有非私有字段

返回:

字典

static get_key_fmt(obj: Any, attr: str, fmt: str = 'camel', default: Any = None) Any

获取对象属性,支持键名格式转换。

先尝试 attr,再尝试 camel/snake 互转后的键名。

参数:
  • obj – 对象(dict 或普通对象)

  • attr – 属性名

  • fmt – 格式类型 "camel""snake",默认 "camel"

  • default – 默认值

返回:

属性值或默认值