Python 3.0のどの機能が日常のコーディングを変えますか? [閉まっている]

StackOverflow https://stackoverflow.com/questions/340972

  •  19-08-2019
  •  | 
  •  

質問

Py3k ちょうど出てきたとゴブを持っています新しいものが必要です!私が興味を持っているのは、Pythonで最も興奮しているのは何ですか?日常的にコードを記述する方法に影響を与える機能はありますか、または楽しみにしていますか?

役に立ちましたか?

解決

私が非常に興味を持っていることがいくつかあります:

他のヒント

例外チェーンが普及することを願っています。以下に示すアンチパターンによる例外スタックトレースの喪失は、長い間私の悩みの種でした:

try:
   doSomething( someObject)
except:
   someCleanup()

   # Thanks for passing the error-causing object,
   # but the original stack trace is lost :-(

   raise MyError("Bad, bad object!", someObject)

元の例外にコンテキスト情報を追加し、元のスタックトレースを保持することは 可能ですが、非常にいハックが必要でした。これで、次のことができます(そしてすべき!):

raise MyError("Bad, bad object!", someObject) from original_exception

上記の両方を簡単に取得します。ですから、失われたスタックトレースに対する私の聖なる使命の一部として:

次に、例外を再発行するときは、 from 句を忘れないでください!ありがとう。

率直に言って、どれもありません。おそらく新しい構文のいくつかを使用していることに気づくでしょうが、私は主にPythonを使用して、迅速で単純なスクリプトと正規表現を使用します。

この新しい機能により、多くの人にとっては小さなことがたくさん簡単になり、少数の人にとっては大きなことが少し簡単になると思います。しかし、多くの人が最終的に生産性の大幅な向上につながるという主張には懐疑的です。

要するに、これらの変更は全体的に少し良くなると思いますが、奇跡を期待しないでください。

それほど多くの機能はありませんが、ライブラリのクリーンアップは特に役立つと思います。新しいPythonプログラマーに。複数の機会に、私はPythonで何かをして、その機能を提供する2つの含まれているライブラリを見つけたいと思っていましたが、他のライブラリを選択する理由は明らかではありませんでした。

ここでは、Python 2.xとPython 3の新機能や相違点について説明する優れた記事があります。

http://www.b-list。 org / weblog / 2008 / dec / 05 / python-3000 /

インタープリター言語で可能な限り最小の移行コースを達成するために彼らがしたことにもかかわらず、私はpython3のリリース全体が移行の10年間の苦痛の道であると思います。そのため、特に魅力的ではありません。

彼らが行った改善はすべて良くて重要です。文字列の2つの異なるタイプはどこでも迷惑の本当の原因であるため、Unicodeオブジェクトから削除し、現在はUnicodeオブジェクトを除いてbytesオブジェクトを導入するのは良いことです。

bignum vs. num -changeは便宜上のものであり、これも良い選択だったと思います。全体として、彼らは過去10年間に蓄積した有害な要素から言語を取り除きました。

2番目に最悪だったのは、実装が10%遅いことでした。まるで速度がpythonの問題ではないかのようです。

python3のリリースはpythonの評判を改善するのではなく押し下げると信じています。今では、彼らは言語がライブラリサポートに帰着するとき、彼らの言語で最初に戻っています。

それほど多くのことをする必要はありません。

  • unicode()またはu""の使用について心配する必要はありません。

  • urllib urllib2およびhttplibのドキュメントを検索してその機能の場所を見つける必要はありません。ファイルをエンコードし、POSTリクエストでアップロードする必要があります

  • except TypeError, something:TypeErrorsomething、または<=>を「何か」にキャッチするかどうかを心配する必要はありません。

そして逆に、ドキュメントをもう一度見る必要があります!私はpydocを参照せずにほとんどのことを行うことができるようになりましたが、Pythonを知っているたびに、他の有用なモジュールまたは関数を発見します。

printステートメント。 <sniff>もう見逃し始めています。

実際、Python 2.6に移行する前に、printを優先してlogging.debugを削除しています。これは、デバッグ、サポート、開発のために<=>を何気なく使用する習慣から抜け出すためです。

残っているのは、実際にstdoutでデータを生成するプログラムです。それらのために、2.6 / 3.0互換の<!> quot; print <!> quot;を導入するかもしれません。ライブラリの1つで機能します。

辞書の理解力は必ずしも衝撃的ではありませんが、非常に優れています。

{k: v for k, v in list}dict(list)よりも長いですが、より柔軟で自明です。

Python 3の最も過小評価されている機能の1つは、Abstract Base Classesの導入です。これは、Pythonプログラミングをすぐに変革するものではありませんが、アヒルのタイピングの緩やかなアプローチから、より適切に定義されたインターフェイスの方向への興味深いシフトを表しています。

詳細については、 PEP 3119 をご覧ください。

>

Python 3のリリースを言語学習の動機として取っているので、それらすべてについてだけです。

Unicode(utf-8)は、非英語圏の国に住んでいる人々にとって本当に重要です。

私はいつも忘れてしまうので、ファイルの先頭でエンコーディングを指定したくありませんでした。 UTF-8を使用しているため、通常、テキストはASCIIと互換性があります。したがって、エンコード仕様がなくても機能します。しかし、名前を(アクセント付きで)または<!>#8364と書くと、記号、それは壊れています...私は\ uxxxx表現でユニコード文字を書くことになりましたが、それはちょっと不可解です!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top