在Django项目中,这是正常/正确的方法:
在型号.py你知道吗
class Reservation():
def cancel_reservation(self):
# ....
@classmethod
def get_client_reservations(cls):
我在公司代码库中发现的另一种方法是:
在型号.py你知道吗
class Reservation():
# There is no method here except __unicode__
在管理方面_预订.py你知道吗
def cancel_reservation(reservation):
# ...
def get_client_reservations():
# ...
我想列出一份选择第一种方法而不是第二种方法的后果清单。你知道吗
如果方法与类相关,例如如果它需要某个类变量,或者如果它在逻辑上属于类,则应该将方法放在类中
这不是一个技术性的答案,但是试着对代码做一个git blame,看看是谁写的方法,问他们为什么选择这样做。一般来说,最好将方法保留在类上(出于多种原因)-例如,能够执行dir(r)(其中r是保留)并查看r上的所有方法
这是一种编码方式。”OOP中的“Object”是data和方法。对象拥有保存和操作数据所需的一切。没有“正确”的答案,更多的是意见和风格。你知道吗
所以你可以写:
而不是:
但事实是Python模块是一个很好的解决方案,它可以将所有的东西保持在一起,而且比复杂的继承链更容易调试。你知道吗
在django中,OOP是必不可少的,因为框架可以让您轻松地对组件进行子类化,并只定制您需要的内容,没有对象很难做到这一点。你知道吗
如果您需要一个带有特定字段的特定窗体,那么您可以将其编写为一个带有函数的简单模块。但是如果你需要一个通用的“表单”,每个人都可以定制(或者一个模型,认证后端等等),你就需要OOP。你知道吗
所以底线(IMHO):如果保留是在金字塔的底部,数据和代码的结束行,没有大的区别,更多的个人偏好。如果它在上面,你需要保留这个和那个,OOP更好。你知道吗
相关问题 更多 >
编程相关推荐