我有这段代码:
class mydict():
def __init__(self, dict, **kwargv):
for key, item in dict.items():
print key, item
for key, item in kwargv.items():
print key, item
test_dic = {1:'I', 2:'love'}
dic = mydict(test_dic, 3='python')
如果我将mydict(test_dic, name='python')
设置为有效,但如果它是int
,则会出现以下错误:
关键字不能是表达式
有人能解释一下这背后的过程吗?
答案 0 :(得分:4)
3
是所谓的关键字参数。在这种情况下,关键字是ImageDataGenerator
。但关键字必须是有效的标识符。 Valid identifiers是:
大写和小写字母A到Z,下划线_和除第一个字符外,数字0到9
答案 1 :(得分:0)
变量名不能以数字开头,而kwargs输入必须是有效的变量名
答案 2 :(得分:0)
在Python中,关键字参数名称(如参数名称)必须是标识符 - 与变量名称,函数名称等的规则相同。
这在教程中没有真正解释过。它在the reference中被精确描述,但这并不是新手友好的。
无论如何,这意味着简写dict(key1=value1, key2=value2)
不适用于所有词典,只是字典,其键是有效标识符的字符串。当然,您可以像使用test_dic
一样使用字典显示。
这通常出现在更高级的代码中,您尝试调用类似func(**test_dic)
的内容,它会扩展为等同于func(1='I', 2='love')
,并且会给您一个非常神秘的错误,所以...很高兴你跑了在此之前,它更容易理解。