我看过'dict' object is not callable
SO答案,但不太明白我搞砸了什么。
我有一系列字典,然后我想浏览每一个字典并访问这些元素。
prebuilt_jars = [
{'name':'xwalk-app-jar', 'binary_jar':'xwalk_core_library/libs/xwalk_core_library_java_app_part.jar'},
]
for prebuilt_jar in prebuilt_jars:
prebuilt_jar(
name = prebuilt_jar['name'],
binary_jar = prebuilt_jar['binary_jar'],
)
jar_deps.append(':' + prebuilt_jar['name'])
但是我得到了'dict' object is not callable
name = prebuilt_jar['name'],
和
binary_jar = prebuilt_jar['binary_jar'],
你知道我的语法有什么问题吗?
更新
所以我正在做的是试图压缩一堆我喜欢的规则:
prebuilt_jar(
name = 'xwalk-app-jar',
binary_jar = 'xwalk_core_library/libs/xwalk_core_library_java_app_part.jar',
)
jar_deps.append(':xwalk-app-jar')
prebuilt_jar
是一个Buck函数,用于构建预构建的jar文件。
我希望有一个包含所有jar对象的字典,然后使用这些字典对象循环填充prebuilt_jar
调用。
答案
我将循环变量命名为与函数名称相同。
for pJar in prebuilt_jars:
prebuilt_jar(
name = pJar['name'],
binary_jar = pJar['binary_jar'],
)
jar_deps.append(':' + pJar['name'])
答案 0 :(得分:0)
在字面上,这是循环变量的函数调用语法:
prebuilt_jar(
name = prebuilt_jar['name'],
binary_jar = prebuilt_jar['binary_jar'],
)
您对该代码的意图是什么?
我想象一下:
for prebuilt_jar in prebuilt_jars:
jar_deps.append(':' + prebuilt_jar['name'])
就是你的意思。
答案 1 :(得分:0)
您因为尝试call
字典而导致该错误。 prebuilt_jars
是一本字典,然后你可以:
prebuilt_jar(
name = prebuilt_jar['name'],
binary_jar = prebuilt_jar['binary_jar'],
)
好像prebuilt_jar
是一个功能。尝试做:
for prebuilt_jar in prebuilt_jars:
print(prebuilt_jar['name'])
print(prebuilt_jar['binary_jar'])
或者别的,如果你不想打印这些物品。