def host(self):
""" Return user host """
_ = self._request.getText
host = self.isCurrentUser() and self._cfg.show_hosts and self._request.remote_addr
return host or _("<unknown>")
对于此代码,_表示_request的getText函数。我发现_有时代表命令的最后一个输出。
但我想知道为什么不直接使用self._request.getText(“”)。如果我用另一个变量替换_,它仍然有效。有什么不同吗?
谢谢你的回答。
答案 0 :(得分:4)
这主要是一个惯例问题。当您的应用程序受i18n(国际化)约束时,几乎所有(显示)字符串都会通过一个函数将它们转换为正确的语言。拥有一个很长的函数名称将使代码不可读,因此命名它_已成为一种惯例。
(另外,一些有助于i18n的工具可以查看您的源代码,识别_("key")
并制作您需要翻译的key
列表。
答案 1 :(得分:2)
_
在Python中用作throw-value变量,当你使用python解释器作为计算器并且你想要最后一个表达式的结果时,它有时很有用。
>>> 22.0/7
3.1428571428571428
>>> _ * 42
但是使用_
作为抛弃变量并不是一个好习惯。它往往会让人很困惑。而是使用临时变量名称。
似乎有将_
分配给产生i18n消息的Factory类的做法。它更像是一种惯例和实践,而不是任何重要的事物。
以下SO question几乎与您的相同。