2012-04-26 5 views

答えて

3

startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW 

dwFlagsはつまり、それは整数で適切なビットをオンにすることで、単一の整数値のフラグの数を格納し、ビットマスクです。この場合、STARTF_USESHOWWINDOWの値は1です。つまり、dwFlags整数の最下位ビットが1の場合にこのフラグが設定され、LSBが0の場合は設定されません。

この場合、演算子は左オペランドをとり、左オペランドの1ビットがセットされ、残りのビットはそのままになります。それはいくつかのフラグを持っている場合たとえば

は、それが前に設定された他のフラグに影響を与えることなく、設定されたフラグにsubprocess.STARTF_USESHOWWINDOWを追加し、00101000たとえば、だった、それは00101001に設定されます前に、バイナリ表現だように設定します操作。

+0

偉大な答え、説明のおかげで。 – iTayb

7

インプレース|です。 a |= bは、であり、主には、a = a | bに相当します。

+0

'| '演算子とはどういう意味ですか?私はドキュメンテーションでもそれを見つけられませんでした。 – iTayb

+1

数字の場合は[bitwise or](http://docs.python.org/reference/expressions.html#binary-bitwiseoperations)です。 –

+2

楽しい時は、 'False | = True; False' – Marcin

1

a |= bは、a = a | bと同じ意味です。

+2

は、投票の理由を教えてくれますか? – gefei

+0

おそらく、もう既に行ってしまっているでしょう。しかし、たぶんそれは、絶対的な主張のためであったかもしれません。それはすべての状況において同じではありません。それにもかかわらず、私は落としていないだろう(しかし、上手くいかない)。 – glglgl

+2

たとえば、集合の場合、 '|'は2組の和集合であり、両方の文はsthを意味します。 else: 'a | = b'は' a'で参照されるオブジェクトを変更し、 'a = a | b'は新しいオブジェクトを作成し、 'a'を参照させます。 – glglgl

4

|=は、いわゆるaugmented assignment statementである。その目的は、the normal | operationのように、インプレースまたはオペレーションを実行することです。

存在しているが、しかし、いくつかのsublteの違いは、オブジェクトのさまざまなメソッドが呼び出されるよう:|のために、それは__or__()または__ror__()で、|=のために、それは__ior__()です。あなたは求めている特定のレシピで

関連する問題