1

私はそれらをどのように解釈するのかよくわかりません.

color = self.color2

color = self.fill1 if color == self.fill2 else self.fill2

これは正確には何を言っているのですか?

4

4 に答える 4

5

これは、条件式として知られています。

式xifC else yは、最初に条件C(xではない)を評価します。Cが真の場合、xが評価され、その値が返されます。それ以外の場合は、yが評価され、その値が返されます。

したがって、具体的な例は次のようになります。

if color == self.fill2:
    color = self.fill1
else:
    color = self.fill2
于 2013-03-10T08:01:42.833 に答える
3

これはリスト内包表記ではありません。それは一種の構文糖です。皮肉なことに、読みやすさを向上させるためのものです。

次のように解釈できます。

if color == self.fill2:
    color = self.fill1
else:
    color = self.fill2
于 2013-03-10T07:59:19.963 に答える
1

これは条件式です。PEP-308を参照してください。

だからこのようなもの

x = true_value if condition else false_value 

次のように書くこともできます

if condition:
    x = true_value
else:
    x = false_value
于 2013-03-10T08:07:50.167 に答える
0

まあ、それはそれが言っていることを正確に言います:の値がに等しい場合は変数に値をself.fill1入れ、そうでない場合は。を入れます。これは三項演算子と呼ばれます。詳細については、こちらをご覧ください。colorcolorself.fill1self.fill2

于 2013-03-10T08:01:52.230 に答える