为了账号安全,请及时绑定邮箱和手机立即绑定

python字典中的下划线和括号是什么意思?

python字典中的下划线和括号是什么意思?

繁星点点滴滴 2019-04-08 11:18:29
我在看django的django.contrib.auth.forms的表单,看到一个字典是这么写的,请问这里出现的下划线是什么意思?我error_messages=dict(SetPasswordForm.error_messages,**{'password_incorrect':_("Youroldpasswordwasenteredincorrectly.""Pleaseenteritagain."),我在python下试了一下类似的语法,但是出错了:>>>dict(onw=1,**{"a":"1","b":_("123")})Traceback(mostrecentcalllast):File"",line1,inTypeError:'dict'objectisnotcallable
查看完整描述

2 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

^_^
_()函数是gettext()函数的别名。(php的叫法。可能其他语言中名字略有差异)
这个函数广泛用于国际化和本地化(i18n&l10n)。其作用是在翻译表中查找源语言文本(一般是英语)所对应的目标语言文本,找不到则返回本身。
你可以参考:SOF的这个答案;Django官方文档——翻译指南。
不光Django,在其他程序中也有类似实践。例如WordPress的官方主题。
                            
查看完整回答
反对 回复 2019-04-08
?
慕斯709654

TA贡献1840条经验 获得超5个赞

我来补充一下。
在程序中,_在绝大部分情况下是gettext函数的别名,而N_是ngettext的别名。Python的gettext模块有提供一个函数将这个别名「安装」到builtin空间中以便在任何地方都可以使用。
在Python交互式解释器中,_是上一条表达式的值。所以你才会得到那个有些奇怪的错误信息。
其实_就是一个长得有些不一样的名字而已,只是有些地方约定了用它来做特定的事情。
                            
查看完整回答
反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 592 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信