什么是数据对象可接受的样式python
参见英文答案 >
python: list vs tuple,when to use each? 7个
python中数据对象的正常样式是什么.假设我有一个方法可以从某个地方(net,DB,….)获取客户应返回的对象类型.我看到几个选择: >一个元组 我相信还有其他人.做我的第一个大python项目,所以想开始使用最佳实践 哇 – 对这个问题的负面反应感到惊讶.也许不清楚 我有很多不同的数据项,我想传递给我的代码.用户,产品,客户,订单……(实际上它们不是那样的,但它更简单,有明显类型的东西).所以我有 def get_user(): return x x应该是什么.一个名为user,dict,一个元组的类的实例…… 没有与对象相关的方法,纯数据 看起来像命名元组是要走的路 编辑:作为一种风格如何 class product: pass ... def get_product(): ... db read stuff pr = product() pr.name = dbthing[0] pr.price = dbthing[1] return pr 是barf诱导或完善的风格或奇怪或什么?有用.从消费者的角度来看,它可以实现可读代码 def xxx(): pr = get_product() total = amount * pr.price 解决方法
对于简单的数据记录,您通常应首先考虑collections.namedtuple,如果不适合任何原因,请使用其他选项之一.一旦你知道为什么它不适合通常建议使用哪些其他人.您可以将collections.namedtuple视为快速定义不可变“数据类”的快捷方式.
以数据库为例,如果你正在使用ORM,那么即使是最简单的记录也会被表示为对象[*],并且有充分的理由,因为它们都可以共同执行一些可以对它们执行的操作,例如存储更改回到数据库. ORM的教程/文档将指导您.如果您直接使用Python db API,那么SQL查询中的行将(最初)作为元组返回,但是当您拥有它们时,您当然可以使用它们执行您喜欢的操作.此外,数据库连接器可以在调用execute()之前提供操作它们的方法,例如在sqlite3中设置行工厂. 以“网”为例 – 嗯,有许多数据交换方法,但一个常见的例子是访问返回JSON数据的API.在这种情况下,没有太多选择,只能最初在程序中以与JSON结构相同的方式表示此数据:作为包含列表,字典,字符串和数字的列表和字典.再一次,一旦拥有它,你可以用你喜欢的东西做.按原样使用它是相当正常的,将它重新组织成其他东西也是很正常的.个人偏好和特定情况都会影响您实际选择的内容. 您当然应该将所有这些事情都视为可用选项.一般来说,你会使用: >每个职位都有自己意义的元组.这就是为什么Python通过返回一个元组从函数返回“多个值”的原因,因为不同的东西可能是完全不同的类型,具有不同的含义. [*]好吧,元组和词典当然也是对象,我指的是除了这些数据结构之外的对象;-) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |