python 文中源码dict内下划线及括号有什么作用,,我在看django的dj
python 文中源码dict内下划线及括号有什么作用,,我在看django的dj
我在看django的django.contrib.auth.forms的表单,看到一个字典是这么写的,请问这里出现的下划线是什么意思?我
error_messages = dict(SetPasswordForm.error_messages, **{ 'password_incorrect': _("Your old password was entered incorrectly. " "Please enter it again."),
我在python下试了一下类似的语法,但是出错了:
>>> dict(onw=1, **{"a": "1", "b": _("123")})Traceback (most recent call last): File "<console>", line 1, in <module>TypeError: 'dict' object is not callable
我来补充一下。
在程序中,_ 在绝大部分情况下是 gettext 函数的别名,而 N_ 是 ngettext 的别名。Python 的 gettext 模块有提供一个函数将这个别名「安装」到 builtin 空间中以便在任何地方都可以使用。
在 Python 交互式解释器中,_ 是上一条表达式的值。所以你才会得到那个有些奇怪的错误信息。
其实 _ 就是一个长得有些不一样的名字而已,只是有些地方约定了用它来做特定的事情。
^_^
_()函数是gettext()函数的别名。(php的叫法。可能其他语言中名字略有差异)
这个函数广泛用于国际化和本地化(i18n & l10n)。其作用是在翻译表中查找源语言文本(一般是英语)所对应的目标语言文本,找不到则返回本身。
你可以参考:SOF的这个答案;Django官方文档——翻译指南。
不光Django,在其他程序中也有类似实践。例如WordPress的官方主题。
编橙之家文章,
相关内容
- Python曾经使用的命令列表用什么查看,python命令,如题。
- 求Python爬虫如何鉴别网页语言的方法,python爬虫鉴别网
- Python多对多数据添加flask-SQLAlchemy具休如何操作,,我按
- Python这段计算a*b%c函数原理是什么?,pythonb%c,def calcu
- Python Eval强制将字符串转换成dict类型出错,evaldict,我有
- 关于Python爬取网址结构问题及怎么跳过当前文件继续下
- Python可以实现知乎网站公共编辑功能吗,python编辑,想知
- 获取t分布值能用python方法来完成吗?需要怎么写源码,
- SSH到Llinode服务器,Python关闭运行的问题,sshllinode,SSH到
- 环境部署问题,python web应用可以在代码中判断debug模式吗
评论关闭