return返回的是元组python_返回对象与返回元组

我在python中开发了一个文件类,它可以读写一个文件,包含一个xyz坐标列表。在我的程序中,我已经有一个Coord3D类来保存xyz坐标。

我的问题是关于getCoordinate(index)方法的设计。我应该返回一个float元组,还是一个Coord3D对象?

在第一种情况下,耦合度很低,但无论如何,我可能必须用获得的值实例化Coord3D对象,尽管不在file类中。在第二种情况下,我将文件类与Coord3D类紧密耦合。

请注意,我认为这两种解决方案没有太大的区别,但我想看看你的答案和背后的原因。

编辑:要概括我到目前为止得到的答案,似乎没有明确的选择。有人说(恰当地说)python不是Java,您不需要专门的类来处理所有事情,因为您需要按语言体系结构进行处理。但就我而言,我有以下条件:我正在一个库中工作,其中Coord3D对象按原样使用。使用它将增加我的库的内聚性,因为数据类型将被统一使用。

Coord3D对象具有状态和行为。实际上,Coord3D对象将坐标和单位聚合在一个实体中。Coord3D对象之间的操作将考虑到潜在的不同单元,并相应地采取行动。

我可以将集中控制代码放入Coord3D类实例化中以拒绝,例如,长度为4的数组或非单元数组。如果使用元组,则无法执行此检查。此外,如果一个方法接受Coord3D,则可以保证它是格式良好的预先(您可以使用粗体并检查isinstance或检查接口)。元组可以包含无效数据。尽管python的错误处理方法是在出现问题的地方完成的,但是一个阻止我使用由三个字符串组成的xyz坐标的类在某种程度上是有益的(如果错误,请纠正我)

另一方面,使用元组具有以下优点:占用资源少,在巨大的

更简单的设计。更多的类意味着更复杂的设计。元组是一种标准的数据类型,它很容易理解和解包。个性化的类不是。

使用元组时,XYZFile类与库的其余部分完全分离(因为它不使用Coord3D对象)。这意味着它可以作为一个独立的实体完全重用。

欢迎进一步评论!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值