You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何实现类似C/C++的返回对象与布尔标志的函数?

在Python中实现类似C/C++的"成功标志+返回对象"模式

你提到在C/C++里经常写这种风格的函数:通过布尔返回值标记操作成功/失败,同时用引用参数传递就绪的对象(比如bool get_list(List& l)),现在想在Python里找等价实现——虽然知道Python支持多返回值,但纠结这种写法是否简洁,还关注效率问题对吧?

答案很明确:返回元组就是Python里最贴合、最实用的等价方式,完全能满足你的需求,而且既简洁又高效。

示例代码模拟你的场景

比如你有个类,里面有个成员变量列表,当满足就绪条件时返回这个列表和成功标志,否则返回空对象和失败标志:

class MyDataHandler:
    def __init__(self):
        self._internal_list = ["a", "b", "c"]
        self._is_list_ready = True  # 模拟列表就绪状态

    def get_list(self):
        if self._is_list_ready:
            # 就绪时直接返回成员变量和成功标志
            return self._internal_list, True
        # 未就绪时返回空列表和失败标志
        return [], False

调用方式清晰直观

调用的时候用Python的解构赋值,代码非常干净:

handler = MyDataHandler()
target_list, operation_ok = handler.get_list()

if operation_ok:
    print("获取到列表:", target_list)
else:
    print("列表未就绪,无法获取")

关于效率的说明

你提到“用标志指示是否可用更高效”——这点完全不用担心:Python里的对象都是引用传递,这里返回的成员变量self._internal_list不会被拷贝,和C++里的引用传递效率完全一致,不会有额外的性能损耗。

补充说明

你也提到现代C更推荐用异常,但旧代码大量使用标志模式;Python里这种元组返回的方式,刚好和C旧代码的逻辑对齐,不需要改变你的思维习惯,适配性很强。而且这种写法在Python社区是很常用的,可读性和简洁性都没问题,完全不存在“不够简洁”的顾虑。

内容的提问来源于stack exchange,提问作者chesschi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:02:46