'state' 对于 Django 应用程序意味着什么?
What does 'state' mean regarding Django apps?
我是 django(和一般编程)的新手,我正在尝试创建 Reviewboard 扩展。
此扩展程序将在一列中显示用户的全名。代码大部分工作,但是我不明白这个方法中的状态变量是做什么的。
# renders column to display
def render_data(self, state, review_request):
# returns user's fullname (or username if fullname does not exist)
user = review_request.submitter
return user.get_full_name() or user.username
此代码有效,但是当我删除 'state' 参数时,该字段显示 'None' 而不是用户的全名。我尝试在线查找,但找不到该变量作用的解释。
我什至没有在我的方法中调用它,但它仍然影响结果。
我不喜欢有我不完全理解的代码(更难调试),所以有人可以解释一下吗?
我觉得是什么意思
我认为状态是指对象的实例。在这种情况下,将呈现全名的 review_request。如果没有这个实例,就无法将一个审核请求与所有审核请求区分开来。我什至不调用它,我仍然不知道它如何影响代码。
编辑:C14L 是对的,我将 state 重命名为 foobar,我的代码仍然正常运行。我在调用函数的 djblets/django 代码的 source 中挖掘了更多内容。
rendered_data = self.render_data(state, obj)
在您发布的代码中,根本没有使用 state
。但是,如果您删除它,那么 review_request
将成为第二个参数。但是调用此函数时,期望 review_request
成为第三个参数。您不能只更改参数的数量或顺序,因为调用者不知道这些。尝试将 state
重命名为 foobar
,该功能仍将像以前一样工作。
你可以把 state
留在那儿,那很好。 function/method 的接口不应该仅仅因为函数或方法内部(不再)使用其中一个参数而改变。
我是 django(和一般编程)的新手,我正在尝试创建 Reviewboard 扩展。 此扩展程序将在一列中显示用户的全名。代码大部分工作,但是我不明白这个方法中的状态变量是做什么的。
# renders column to display
def render_data(self, state, review_request):
# returns user's fullname (or username if fullname does not exist)
user = review_request.submitter
return user.get_full_name() or user.username
此代码有效,但是当我删除 'state' 参数时,该字段显示 'None' 而不是用户的全名。我尝试在线查找,但找不到该变量作用的解释。
我什至没有在我的方法中调用它,但它仍然影响结果。
我不喜欢有我不完全理解的代码(更难调试),所以有人可以解释一下吗?
我觉得是什么意思
我认为状态是指对象的实例。在这种情况下,将呈现全名的 review_request。如果没有这个实例,就无法将一个审核请求与所有审核请求区分开来。我什至不调用它,我仍然不知道它如何影响代码。
编辑:C14L 是对的,我将 state 重命名为 foobar,我的代码仍然正常运行。我在调用函数的 djblets/django 代码的 source 中挖掘了更多内容。
rendered_data = self.render_data(state, obj)
在您发布的代码中,根本没有使用 state
。但是,如果您删除它,那么 review_request
将成为第二个参数。但是调用此函数时,期望 review_request
成为第三个参数。您不能只更改参数的数量或顺序,因为调用者不知道这些。尝试将 state
重命名为 foobar
,该功能仍将像以前一样工作。
你可以把 state
留在那儿,那很好。 function/method 的接口不应该仅仅因为函数或方法内部(不再)使用其中一个参数而改变。