Pythonは変数が3 Noneを書かされていないかどうかを判断します

多くの場合、変数のコードは判決のいずれもありませんがあるかどうか、書き込みの主に3つのタイプがあります。

  • 最初はありますif x is None
  • 第ですif not x:
  • 第三は、if not x is None(より明確に理解文if not (x is None))。

あなたは、これが書き込みに異なるものではないと思われる場合、あなたは注意することができ、そしてピットがあります。コードを初めて目:

在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容
>>> x = 1
>>> not x
False
>>> x = [1]
>>> not x
False
>>> x = 0
>>> not x
True
>>> x = [0]     # You don't want to fall in this one.
>>> not x
False

パイソン、Falseを、空の文字列「でなし」、0、空のリスト[] {}空の辞書、空のタプルは()、すなわち偽、と等価です。

コードは以下の通りであります:

not None == not False == not '' == not 0 == not [] == not {} == not () 

そのため、あなたは== Xを区別したい場合は、リストを使用している場合、[]とのx ==なしの両方の場合は、その後、この時点ではif not x:、問題が発生します:

>>> x = []
>>> y = None
>>> 
>>> x is None
False
>>> y is None
True
>>> 
>>> 
>>> not x
True
>>> not y
True
>>> 
>>> 
>>> not x is None
>>> True
>>> not y is None
False
>>>

たぶん、あなたは、xがNoneかどうかを確認したいのですが、混乱したx==[]状況も判断に来て、この場合を区別することはできません。

Xなし、Falseを、空の文字列「に等しいことが明らかでなければならないような手法に慣れxがない場合pythoner」、0、空のリスト[] {}空の辞書、空のタプル()あなたを判断しないために仕事に影響を与えます。

以下の場合if x is not Noneif not x is None書き込み、前者が後者は誤解を読者に可能性を秘めている一方で、約、より明確であることは明らかであるif (not x) is None、したがって、前者お勧めしますが、これはGoogleの推奨スタイルです

結論:

if x is not None最高の書かれた、明確な、エラーはこのようなアプローチに固執し、将来的に発生していないです。
ないのx構内使用した場合、このようなアプローチは、以下のとおりです。xはあなたのために決定された同等の明確なし、虚偽、空の文字列「」、0、空のリスト[] {}空の辞書、空のタプル(時間)には影響しませんことはありませんライン。

おすすめ

転載: blog.51cto.com/14568144/2454897