Django-python编码解释
Django-python coding explanation
什么是静态方法,我们如何解释下面的代码?
@staticmethod
def get_model(**kwargs):
try:
return Model.objects.get(**kwargs)
except Model.DoesNotExist:
return
A staticmethod
是一个未绑定到对象的函数,但被封装在其中(通常是为了减少外部名称空间的混乱,或消除任何导入它的需要)。它没有普通对象方法所具有的第一个 self
参数。
简而言之,也许过于简单化了:staticmethod
不需要 class 到 运行 的对象。这也意味着您不需要 self
参数。
关于代码:
此方法正在尝试 return 与 kwargs 中指定的参数匹配的模型的单个 (.get()) 实例。
示例:
kwargs = {"id":5, "is_alive": True}
Model.objects.get(**kwargs)
#is the same as
Model.objects.get(id=5, is_alive=True)
如果没有与参数匹配的模型实例,这会引发 Model.DoesNotExists 错误,因此使用 try/except。
如果出现 Model.DoesNotExists 错误,则方法 return None.
什么是静态方法,我们如何解释下面的代码?
@staticmethod
def get_model(**kwargs):
try:
return Model.objects.get(**kwargs)
except Model.DoesNotExist:
return
A staticmethod
是一个未绑定到对象的函数,但被封装在其中(通常是为了减少外部名称空间的混乱,或消除任何导入它的需要)。它没有普通对象方法所具有的第一个 self
参数。
简而言之,也许过于简单化了:staticmethod
不需要 class 到 运行 的对象。这也意味着您不需要 self
参数。
关于代码: 此方法正在尝试 return 与 kwargs 中指定的参数匹配的模型的单个 (.get()) 实例。
示例:
kwargs = {"id":5, "is_alive": True}
Model.objects.get(**kwargs)
#is the same as
Model.objects.get(id=5, is_alive=True)
如果没有与参数匹配的模型实例,这会引发 Model.DoesNotExists 错误,因此使用 try/except。
如果出现 Model.DoesNotExists 错误,则方法 return None.