Pythonではなぜ++と-(自増/減)がないのか(回転)

2333 ワード

原文住所:http://blog.csdn.net/guang09080908/article/details/47273775(侵入)
  • この2日間、いくつかのネット上の各インターネット会社の面接問題を見て、テンセントは特に++と–およびシフト演算に関する内容を考察するのが好きであることを発見しました.C++は相対的によく知られていますが、このような問題は演算子の優先度を覚える限り一般的には問題ありません.Pythonもよく使うので、突然Pythonに自増自減演算子がないと思うのはなぜですか?
  • 例えばpythonにはx+=yという形式の式があるが、x++という形式はない.いくつかの資料を調べたところ、+=は変数を変更したことを表し、変数を再生成し、操作後の結果をこの新しく生成した変数に与えることに相当する.しかし++の場合はオブジェクト自体が変わったことを表し,変数自体ではなくオブジェクト本省であることに注意する.このオブジェクトとは、メモリに基本タイプのデータが格納されているアドレスのことです.Pythonのモデルでは、数値オブジェクトは変更できないと規定されています.
  • 例えば次の例:
  • >>> b = 5
    >>> a = 5
    >>> id(a)
    162334512
    >>> id(b)
    162334512
    >>> a is b
    True
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • intは、理論的には、値を割り当てるたびに新しいオブジェクトを作成します.しかし、頻繁に使用されるため、パフォーマンスを向上させて無駄を避けるために、すべてのpythonには整数プールがあり、デフォルトの1~256の数字はこの整数プールに属し、これらが付与されるたびに、プール内の整数オブジェクトを取得します.ただしその他を除くと、以下のように
  • >>> a = 257
    >>> b = 257
    >>> id(a)
    140397570652784
    >>> id(b)
    140397570652736