gpt4 book ai didi

python - '如果' vs. `while` 到 `functools.partial.func`

转载 作者:行者123 更新时间:2023-11-28 17:11:29 25 4
gpt4 key购买 nike

在 Django 文档中 django.conf.urls | Django documentation | Django

有这样的代码:

class RegexURLPattern(LocaleRegexProvider):
...
def lookup_str(self)
callback = self.callback
# Python 3.5 collapses nested partials, so can change "while" to "if"
# when it's the minimum supported version.
while isinstance(callback, functools.partial):
callback = callback.func
...

代码是回调函数'view'的参数并执行。

为什么 whileif 排除“Python 3.5”更好?django.conf.urls.url 传入的回调参数只有一个,见于:

def url(regex, view, kwargs=None, name=None):
elif callable(view):
return RegexURLPattern(regex, view, kwargs, name)

似乎 ifwhile 更具可读性。

最佳答案

这不是关于参数的数量,而是关于一个回调被另一个回调包装的次数的深度。

对于一次迭代,whileif 相同,所以这并不重要。但是,如果有人使用回调调用 lookup_str,而回调本身就是一个回调,while 仍然会继续工作。

关于python - '如果' vs. `while` 到 `functools.partial.func`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47258946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com