これが私の行動です:
>>> def show(d):
print d
...
>>> test = {"result": True}
>>> show(test)
{'result': True}
>>> show(test["info"]="Some info")
File "<console>", line 1
SyntaxError: keyword can't be an expression
式を引数として関数に渡せないのはなぜですか?
これが私の行動です:
>>> def show(d):
print d
...
>>> test = {"result": True}
>>> show(test)
{'result': True}
>>> show(test["info"]="Some info")
File "<console>", line 1
SyntaxError: keyword can't be an expression
式を引数として関数に渡せないのはなぜですか?
=
記号は、これが位置パラメータではなく、キーワード パラメータであることを Python に示します。の左側の部分=
は式test["info"]
であるため、エラーが発生します。
Python 式で代入を許可しない理由は、他の言語では一般的で見つけにくいバグであり、次の構文が原因です。
if (x = 0) {
// error handling
}
else {
// code that only works for nonzero x
}
ソース: http://docs.python.org/faq/design.html#why-can-ti-use-an-assignment-in-an-expression
あなたがしたいことは、グロブ型として渡すことだと思います。
show(*test)
これを行うには、引数の署名と一致する必要があるため、テストを次のように定義する必要があります
test = {'d' : True}
またはショーはする必要があります
def show(result):
一般的には意味がないからです。そこから何を得たいですか?割り当ては値を返しません。
いくつかの可能性を考えてみましょう:
None
です - これには価値がありません。いずれにせよ、あなたがやろうとしていることは意味がありません。