石器時代に戻ったような気がします。
インテリセンスなしで開発する方法を再学習するにはどうすればよいですか(pydevインテリセンスはカウントされません)。一般に、ビジュアルスタジオの快適さをうまく残すにはどうすればよいですか?
石器時代に戻ったような気がします。
インテリセンスなしで開発する方法を再学習するにはどうすればよいですか(pydevインテリセンスはカウントされません)。一般に、ビジュアルスタジオの快適さをうまく残すにはどうすればよいですか?
私は最近、C# のバックグラウンドが強い python を学びました。
私のアドバイス:ただそれをしてください。申し訳ありませんが、我慢できませんでしたが、私も真剣です。Python をインストールして、Python.org ドキュメント(v2.6) を読んでください。本も役立つかもしれません。私は Python PhraseBookが好きです。そこから、python を使ってさまざまなソリューションを実装するようになりました。最も注目すべきは、ProjectEuler.netの質問です。
そのため、言語と組み込みのデータ構造について検討する必要がありました。
Python は本当に使いやすく、直感的です。基本を学ぶのに、約1時間かかりました。かなり慣れるまでに、約5時間かかりました。もちろん、学ぶべきことは常にあります。
また、IronPython や Jython の使用を思いとどまらせることに注意してください。なぜなら、コアを学習していると感じているからです。通常の Python が最初のステップです。
Python には豊富な「イントロスペクション」機能があります。help()
特に、組み込み機能については、Python コマンド ラインから呼び出されるコマンドを使用して、多くの情報を得ることができます。
正規表現を使いたいと思っていて、その使い方を知りたいとします。
>>> import re
>>> help(re)
一度に 1 ページずつ自動的に表示される、見栄えの良い情報が表示されます (次のページを表示するには、スペース バーを押します)。
sub()
モジュールの関数を使用したいことが既にわかっている場合はre
、それに関するヘルプを得ることができます:
>>> help(re.sub)
また、この機能は、モジュール、クラス、および関数に対してPython docstringhelp()
を定義している限り、独自のコードでも機能します。
「IntelliSense」のようなオートコンプリート機能を有効にする vim エディター (または gvim、Windows の場合は vim) の機能を有効にすることができます。また、Exuberant Ctagsを使用してハイパーリンクの「タグ」を生成し、コードをすばやくナビゲートできます。これらにより、vim はほぼ IDE と同じくらい強力で、vim の編集機能をフルに活用できます。(vim に組み込まれている明示的なリファクタリング ツールはありませんが、利用可能なオプションがあります。
また、他の人が指摘しているように、Python 用の IDE も入手できます。私はWingware IDEを使用してきましたが、これをお勧めします。私はほとんどの作業を無料のオープンソース ソフトウェアで行うようにしていますが、それは私が喜んで購入するプロプライエタリ ソフトウェアの 1 つです。また、PydevプラグインでEclipseを使用しました (リファクタリング ツールを使用したところ、問題なく動作しました)。
PS Python には C# よりも豊富な機能セットがありますが、コードの実行速度は遅くなります。Python に慣れると、石器時代にいるような感覚はなくなります。
一歩ずつ?
単純なプログラム (C# で目を閉じて書くことができるもの) から始めて、それを続けてください... API を暗記することになります。
<rant>
これが、Visual Studio の優れたユーザーが、開発者としてはダメだと私が考える理由の 1 つです。API を学習する代わりに、探しているものと多かれ少なかれ似ているものが見つかるまでオブジェクト ブラウザーを調べ、それをインスタンス化してから . そして、使用するのに適していると思われるものを探し始めます。これは非常に迅速ですが、API をあらゆる深さで学習するには永遠にかかることも意味します。これは、多くの場合、車輪を再発明することになることを意味します (車輪は山ほどの家庭用電化製品の下に埋もれていて、まったく知らなかったからです)。それはそこにありました)、または単に次善の方法で物事を行っています。解決策をすぐに見つけられるからといって、それが最高の解決策であるとは限りません。
</rant>
.NET の場合、太陽の下のあらゆるものに対して約 10 億の API が同梱されていますが、これは実際に好まれています。目的のものを見つけるには、多くのノイズをふるいにかける必要があります。
Pythonic コードは、特定のことを実行するための 1 つの明白な方法を好みます。これにより、API が非常に単純で読みやすくなる傾向があります。秘訣は、言語を学び、API を学ぶことです。特に python の場合はそれほど難しいことではありません。最初はインテリセンスに頼ることができないと耳障りになるかもしれませんが、インテリセンスがないことに慣れるまでに 1 週間か 2 週間以上かかることはありません。 .
良い本で言語と基本的な標準ライブラリを学びましょう。新しいライブラリ API に関して言えば、REPL を見つけて、いくつかの探索的コーディングを行うことで、何が起こっているのかをかなり迅速に理解することができます。
wingware の python ide は非常に優れています。それが、Visual Studio C++/.net から python への移行に使用することになったものです。
いつでも IronPython から始めて、Visual Studio で開発を続けることができます。
私はほとんどの場合、Eclipse と PyDev を使用していますが、Eclipse が提供する制限付きのオートコンプリート ヘルプは非常に便利です。
Python の動的な性質のため、VS の IntelliSense のレベルに達することはありません。しかし、大きな代償があります。
最大の問題は、コード - コンパイル - テストのサイクルが壊れたことです。IDLE でプロトタイプ コードを作成してテストするのはとても簡単なので、最初にそこに行くことがよくあります。テストを修正してから、すべてを PyDev に移植して、初めて動作することを確認してください。
もう1つは、はるかに単純だということです。標準モジュールとは何か、それらが何をするのかを知ることは非常に重要ですが、ほとんどの場合、少し読むだけで理解できます。私は毎日のプログラミングでほんの一握りのモジュールを使用するだけです - itertools
、os
、csv
(ええ、まあ)、datetime
、StringIO
- 必要に応じて他のすべてがそこにありますが、通常は必要ありません。
知っておくことが本当に重要なことは、とにかく IntelliSense が役に立たないことです。オートコンプリートはうまくいきません
self.__dict__.update(kwargs)
ちょっと理にかなっています。それがどんなに素晴らしいコード行であり、なぜそれを書くのかを自分で学ばなければなりません。
次に、「どうすればそのようなものを C# で実装し始めることができるでしょうか?」と考えるでしょう。そして、これらの石器時代の人々が使用しているツールは、あなたが思っているよりも少し洗練されていることに気付きます.
C# や Java の出身者がよく犯す間違いは、これらの言語でよくあるような大規模なクラス階層を再作成することです。Python では、これはほとんど役に立ちません。代わりに、ダックタイピングについて学びましょう。また、静的型付けの欠如についてあまり心配する必要はありません。実際には、これが問題になることはほとんどありません。
IntelliStuff を持たない他のことを行うのと同じ方法です。
たとえば、使用できる動詞のリストを表示し、文末に自動的に句読点を追加する IntelliEnglish コンピューター プログラムの助けを借りずに、その質問を書いたに違いありません。:-)
インテリセンスについて心配する必要はありません。Python は非常にシンプルで、知っておくべきことはそれほど多くありません。そのため、いくつかのプロジェクトを実行すると、運転中や食事中などに実際に試してみなくても Python コードを理解できるようになります。さらに、Python のビルトイン テキスト エディター (IDLE) には弱弱なバージョンの Intellisense があり、これは常に私の目的には十分すぎるほどのものです。空白になり、メソッド/プロパティとオブジェクトが持つものを知りたい場合は、対話型セッションでこれを入力してください:
dir(私のオブジェクト)
Pyscripterは、オートコンプリート/インテリセンスで適切な仕事をします。私はPython/Djangoを学び始めたので、最近それを使用しています。ここ数年は主にC#開発者です。
私は冷たい七面鳥に行くことをお勧めします-Pythonのような言語は素晴らしいテキストエディタで輝いています。素晴らしいものになりたいもの(vim、emacsなど)を選択し、決して振り返らないでください。
他の人は、インテリセンスのような機能を持ついくつかのエディターを提案しています。それらを試してみてください。
また、 ipythonをインストールし、それを使用してインタラクティブに言語を学習します。これは、多くの機能が追加された通常のpythonインタラクティブシェルの強化バージョンのようなものであり、最も便利なものの1つであり、コンテキストに応じた広範なタブ補完とヘルプがあります。
たとえば、次のように入力した場合
import r<tab>
rからインポートできるすべてのモジュールが表示されます
import re
re.<tab>
reモジュール内のすべてのオブジェクトが表示されます
re.compile?
re.compile関数に関するdocstringおよびその他の情報が表示され、画面一杯より長い場合は自動的にページャーにパイプされます。
re.compile??
可能な場合は、ソースコードも表示されます。
これを使用すると、ドキュメントで何かを検索するよりも、ipythonに切り替えてオブジェクトを直接クエリする方がはるかに高速であることがわかります。通常のpythonhelp()システムにもアクセスできます。
ipythonには他にもたくさんの機能があります-短い投稿でカバーするには多すぎます。
私はKomodo Editを使用していますが、オートコンプリートで適切な推測を行います。
私は Python にあまり詳しくないので、一般的なアドバイスをします。一般的な関数の参照ページをいくつか印刷しておいてください。プログラミング中は常にそれらを手元に置いてください (または壁や机に固定してください)。インテリセンス..しかし、最も一般的な機能を覚えるためにそれを続けてください。最終的には自然になります
また、もう少し「難しい」デバッグに慣れる必要があります(それがPythonでどのように機能するかはわかりません)
ただし、学習中は、たとえインテリセンスを持っていなくても、(少なくとも C# と比較して) Python の良さを楽しむ必要があります。
私はこれまで Python 開発に IDLE しか使用したことがありませんが、まったく面白くありません。お気に入りのテキスト エディタを入手することをお勧めします。私のものはメモ帳 ++ で、適切なプラグインがあることを祈ります。Eclipse から Visual Studio に移行する必要があっただけなので、これらのコンテキストでは一般的に私の意見は無効です。