トップ 一覧 ping 検索 ヘルプ RSS ログイン

Python ビルトインオブジェクトの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!Python ビルトインオブジェクト
[Python 2.x]
[Python 2.x]{{category 編集中}}

http://docs.python.org/reference/datamodel.html#objects-values-and-types
!!None
この型は一つの値を持ち、値を一つのオブジェクトで表します。
オブジェクトは、Noneという組み込み名を通してアクセスされ、多くの場合、値がないことを知らせるために利用されます。
例えば、関数から値を返すとき、特に何も返す必要がない場合などです。
falseと評価されます。

::値をセットすると真と評価される
 >>> set_value = "set_value"
 >>> if set_value:
 ...     print "true"
 ... else:
 ...     print "false"
 ... 
 true
::Noneをセットされると偽と評価される
 >>> none_value = None
 >>> if none_value:
 ...     print "true"
 ... else:
 ...     print "false"
 ... 
 false
::出力は"None"
 >>> print none_value
 None

変数に値がセットされていない状態は、Noneではない。使用しようとするとNameErrorが発生する。
 >>> print not_set_value
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 NameError: name 'not_set_value' is not defined

!!NotImplemented
この型は一つの値を持ち、値を一つのオブジェクトで表します。
オブジェクトは、NotImplemented という組み込み名を通してアクセスされます。
数値メソッドや高機能な比較メソッドが、オペランドのための操作が実装されていない場合、この値を返すことがあります。trueと評価されます。
 >>> not_imple = NotImplemented
 >>> print not_imple
 NotImplemented
 >>> if not_imple:
 ...     print "true"
 ... else:
 ...     print "false"
 ... 
 true

!!Ellipsis
この型は一つの値を持ち、値を一つのオブジェクトで表します。
オブジェクトは、Ellipses という組み込み名を通してアクセスされます。
スライスに、"..."が存在する場合を示すために使われます。trueと評価されます。

http://stackoverflow.com/questions/118370/how-do-you-use-the-ellipsis-slicing-syntax-in-python
によると、以下の様に使うのだそう。
 >>> class TestEllipsis(object):
 ...     def __getitem__(self, item):
 ...         if item is Ellipsis:
 ...             return "Returning all items"
 ...         else:
 ...             return "return %r items" % item
 ... 
 >>> x = TestEllipsis()
 >>> print x[2]
 return 2 items
 >>> print x[...]
 Returning all items
!!numbers.Number