python中用tuple返回多个数据?

【导读】

python中tuple对象可以包含多个不同类型的数据,在有多个返回值的场景下,能很好地支持。但是需要返回的数据不是一,两个,而是多个。这种返回接口易用吗?

【正文】

1. 用tuple直接返回多个数据

def func():
	# do something
	return (val1, val2, val3, val4, val5)

接口使用方

ret = func()
print ret[0], ret[1], ret[2], ret[3], ret[4]

分析:对于接口使用方来说,只知道返回的tuple对象包含的元素个数(len(ret)), 并能访问每个元素,但是要知道每个元素的含义,必须看接口实现的源代码。

对于使用者来说,不能见文知意。如果改用类似c++或java对象呢?


2. 用自定义对象返回多个值

先定义返回结果的对象类

class ResultObj(object):
	val1 = None
	val2 = None
	val3 = None
	val4 = None
	val5 = None
	
	def __init__(self, val1, val2, val3, val4, val5):
		self.val1 = val1
		self.val2 = val2
		self.val3 = val3
		self.val4 = val4
		self.val5 = val5

定义接口

def func():
	# do something
	return ResultObj(val1, val2, val3, val4, val5)

接口使用方

ret = func()
print ret.val1, ret.val2, ret.val3, ret.val4, ret.val5 

分析:接口使用方知道当前返回的对象哪些成员可以访问,甚至哪些行为可以访问。尤其在可视化IDE开发环境中。


总结:

(1)要返回不多于3个的多个数据,可以用tuple,简单易用

(2)要返回大于3个,建议用类对象。因为这样接口使用方能见文知意,提高了接口的易用性。

(3)经验之谈,具体看使用场景




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值