- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
以下是无效的Python:
def myInvalidFun(kw arg zero=6):
pass
以下是有效的Python:
def myValidFun(**kwargs):
if kwargs.has_key("kw arg zero"):
pass
但是,调用myValidFun
是很棘手的。例如,以下几种方法不起作用:
myValidFun(kw arg zero=6) # SyntaxError: invalid syntax
myValidFun("kw arg zero"=6) # SyntaxError: keyword can't be an expression
kwargs = dict("kw arg zero"=6) # SyntaxError: keyword can't be an expression
myValidFun(**kwargs)
(也许与最后两个错误相同的错误暗示了幕后发生的情况?)但是,这确实有效:
kwargs = {"kw arg zero": 6}
myValidFun(**kwargs)
根据创建字典的 {:} 语法,myValidFun("kw arg Zero"=6)
是否有特殊原因无效?
(更多背景:我有一个非常像字典的类,只是进行了大量的验证,还有一个使用字典条目构建容器的 __init__
,但不是一个字典...它实际上是一个 XML ElementTree,在某些方面类似于列表,而在其他方面则类似于字典。__init__
方法必须采用诸如“我的第一个元素”和“my_first_element”之类的键,并且考虑它们不同的东西。类和 __init__ 与 **kwargs 一起工作得很好,但是初始化我的类是我的示例形式的多行代码,它确实有效,而且看起来可以更简单。 )
编辑:我理解标识符的概念,我的无效代码是为了说明这一点。我想我的问题应该改写为:
为什么以下内容有效?:
myValidFun(**{"invalid identifier":6})
最佳答案
Python 函数的关键字必须是有效的标识符。这是因为在另一方面,它们需要被解包成标识符(变量):
def foo(arg=3):
print arg
您拥有的大部分内容都不是有效的标识符:
kw arg zero #Not valid identifier -- Can't have spaces
"kw arg zero" #Not valid identifier -- It's parsed as a string (expression)
正在做
dict("kw arg zero" = 6)
对于解析器来说与
没有什么不同myValidFunc("kw arg zero" = 6)
<小时/>
现在正如您所指出的,您可以传递事物 View 映射打包/解包(**kwargs
)。但是,它只能通过字典访问。
关于python - 特征: **kwargs allowing improperly named variables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58128593/
在我的 DEV 机器意外关闭后,当我返回 Pycharm 项目时,我注意到我正在编辑的 Django View 文件(有 700 多行)发生这种情况时,它完全是空的。我设法从备份中恢复它;那里没有损失
我正在尝试在 Windows Server 2008 上使用 TortoiseSVN checkout SVN 存储库。我在 checkout 时收到错误消息“遇到不正确的参数”,仅此而已。知道这里可
我正在使用 Sparkle 进行软件更新。我使用 Apple 开发者证书签署了我的应用程序并上传了构建版本。然后我尝试通过调用“checkForUpdates:”方法进行更新。但我收到一条错误消息“更
我尝试在 Elasticsearch 6.6.2 上使用以下模板: { {{#hasSpecialIDFilters}} "query": { "bool": {
有人可以解释什么是“不正确的列表”吗? 注意:感谢大家!你们都摇滚! 最佳答案 我认为@Vijay 的回答是迄今为止最好的回答,我只是打算对其进行 Erlangify。 Erlang 中的对(cons
谁能告诉我如何修复以下跟踪: W/View (16810): requestLayout() improperly called by theme.effects.TopCenterImageV
if(numGrade[1] >= 100) { System.out.println("Your English grade is perfect! Keep it up!"); } els
我发布的应用程序在我的计算机 (windows 10) 上运行良好,但在目标计算机 (windows 7) 上运行不正常 我尝试在不签署 ClickOnce list 的情况下发布,我已将所有引用副本
我正在学习使用 django-nose,但我在设置它时遇到了问题。 ./manage.py test 工作正常。但是 nosetests 没有。 我已将 django_nose 添加到 INSTALL
你好。是否有一个 lint 工具可以找到所有按值接受非原始参数的函数声明。我的 googleFu 失败了。 谢谢。 最佳答案 是的,Cppcheck可以做到这一点(在各种其他有用的检查中)。由于这种特
我在我的应用中使用 Google Analytics,因此它需要 AdSupport 框架。从昨天开始,当我尝试发布更新时我的应用程序被拒绝,并显示以下错误消息: Dear developer, We
{% for frequency in patient_meds.frequency %} {% if frequency == "7" %} Hell
Django (1.5) 对我来说工作得很好,但是当我启动 Python 解释器 (Python 3) 来检查一些东西时,我在尝试导入时遇到了最奇怪的错误 - from django.contrib.
我正在学习函数式编程,并尝试以函数式风格解决几个问题。在将问题分解为函数时,我经历过的一件事是,我似乎有两个选择:使用具有相似参数列表的几个不同的函数,或者使用嵌套函数,作为闭包,可以简单地引用父函数
我正在使用 Google Geochart API 来实现印度政治 map 的州明智报告。我使用了以下代码: google.load('visualization', '1', {'packages'
我在 Solaris 中编译 C 程序并收到此警告。 line 68: warning: improper pointer/integer combination: op "=" 我的代码包含 str
以下是无效的Python: def myInvalidFun(kw arg zero=6): pass 以下是有效的Python: def myValidFun(**kwargs):
以下是无效的python: def myInvalidFun(kw arg zero=6): pass 以下是有效的python: def myValidFun(**kwargs):
我对模板并不陌生,但我遇到了一个相当奇怪的问题,我需要将模板类型分离到它的组件中,以用于我正在处理的数据序列化程序。这很难解释,所以我已经证明了。 这是我简化的示例问题,example.cpp。 te
我在 Delphi 中编写的一个简单且基本的程序遇到以下问题。它是一个登录程序,用户在其中输入用户名和密码。然后,程序将从访问数据库获取密码,其中用户名等于用户输入的用户名。然后程序将从access数
我是一名优秀的程序员,十分优秀!