ホームページ  >  記事  >  バックエンド開発  >  Python の組み込み定数についての深い理解

Python の組み込み定数についての深い理解

黄舟
黄舟オリジナル
2017-05-21 14:05:181633ブラウズ

この記事では、主に Python の組み込み 定数 に関する関連情報を紹介します。記事内の紹介は非常に詳細であり、必要な友人が一緒に読むことができます。

前書き

Python には多くの組み込み定数はなく、True、False、None、NotImplemented、Ellipsis、debug の 6 つしかないことは誰もが知っています。詳細な紹介を見てみましょう:

1. True

1. True は、真の値を表すために使用される bool 型の定数です。

>>> True
True
>>> type(True)
<class &#39;bool&#39;>

2. 定数 True への代入演算は構文エラーをスローします。

>>> True = 1
SyntaxError: can&#39;t assign to keyword

2. False

1. False は、偽の値を表すために使用される bool 型の定数です。

>>> False
False
>>> type(False)
<class &#39;bool&#39;>

2. 定数 False に代入すると構文エラーがスローされます。

>>> False = 0
SyntaxError: can&#39;t assign to keyword

3. None

1. None はなしを意味し、NoneType の唯一の値です。

>>> None #表示无,没有内容输出
>>> type(None)
<class &#39;NoneType&#39;>

2. 定数 None に代入すると構文エラーがスローされます。

>>> None = 2
SyntaxError: can&#39;t assign to keyword

3. functionの場合、returnステートメントがない場合、Noneを返すのと同じです。

>>> def sayHello(): #定义函数
 print(&#39;Hello&#39;)

 
>>> sayHello()
Hello
>>> result = sayHello()
Hello
>>> result
>>> type(result)
<class &#39;NoneType&#39;>

4. NotImplemented

1. NotImplemented は NotImplementedType 型の定数です。

>>> NotImplemented
NotImplemented
>>> type(NotImplemented)
<class &#39;NotImplementedType&#39;>

2. bool() 関数を使用してテストすると、NotImplemented が true 値であることがわかります。

>>> bool(NotImplemented)
True

3. NotImplemented は、構文エラーをスローせずに代入できるため、絶対的な意味では定数ではありません。そうしないと、プログラムの実行結果に影響します。

>>> bool(NotImplemented)
True
>>> NotImplemented = False
>>> 
>>> bool(NotImplemented)
False

4. NotImplemented は、一部のバイナリ特殊メソッド (eq、lt など) の戻り値として主に使用され、メソッドが実装されていないことを示します。Python は、次の試行時に 2 つのパラメーターをスマートに交換します。結果は NotImplemented を返します。

>>> class A(object):
 def init(self,name,value):
  self.name = name
  self.value = value
 def eq(self,other):
  print(&#39;self:&#39;,self.name,self.value)
  print(&#39;other:&#39;,other.name,other.value)
  return self.value == other.value #判断2个对象的value值是否相等

>>> a1 = A(&#39;Tom&#39;,1)
>>> a2 = A(&#39;Jay&#39;,1)
>>> a1 == a2
self: Tom 1
other: Jay 1
True
>>> class A(object):
 def init(self,name,value):
  self.name = name
  self.value = value
 def eq(self,other):
  print(&#39;self:&#39;,self.name,self.value)
  print(&#39;other:&#39;,other.name,other.value)
  return NotImplemented

>>> a1 = A(&#39;Tom&#39;,1)
>>> a2 = A(&#39;Jay&#39;,1)
>>> a1 == a2
self: Tom 1
other: Jay 1
self: Jay 1
other: Tom 1
False

a1==a2 を実行して (つまり、eq(a1,a2) を呼び出して) NotImplemented を返すと、Python は自動的にパラメーターを交換し、再度 eq(a2,a1) を呼び出します。

5. Ellipsis は、... と同等の省略記号型の定数です。

>>> Ellipsis
Ellipsis
>>> type(Ellipsis)
<class &#39;ellipsis&#39;>
>>> ...
Ellipsis
>>> ... == Ellipsis
True
2. bool() 関数を使用してテストすると、省略記号が true 値であることがわかります。
>>> bool(Ellipsis)
True

3. 省略記号は、構文エラーをスローせずに値を割り当てることができるため、絶対的な意味では定数ではありません。そうしないと、プログラムの実行結果に影響します。

>>> bool(Ellipsis)
True
>>> Ellipsis = False
>>> bool(Ellipsis)
False

4. 省略記号は主に

loop

のデータ構造を表すために使用されます。

>>> a = [1,2,3,4]
>>> a.append(a)
>>> a
[1, 2, 3, 4, [...]]
>>> a
[1, 2, 3, 4, [...]]
>>> len(a)
>>> a[4]
[1, 2, 3, 4, [...]]
>>>

6. debug

1. debug は bool 型定数です。

>>> debug
True
>>> type(debug)
<class &#39;bool&#39;>
2. 定数デバッグへの代入操作は構文エラーをスローします。
>>> debug = False
SyntaxError: assignment to keyword

3. Python が -O オプションで起動されていない場合、この定数は true になり、それ以外の場合は false になります。

概要

以上がPython の組み込み定数についての深い理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。