hutool.core.util.object¶
Python port of Java Hutool’s ObjectUtil.
对象工具类,提供对象比较、空值判断、默认值处理、类型判断等常用对象工具方法。
Module Contents¶
Classes¶
对象工具类,对应 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 – 默认值
- 返回:
属性值或默认值