4

Python に eclips を使用していますが、問題に直面しています。多くのプロパティを持つ多くのクラスがあり、宣言されたクラスの 1 つからオブジェクトのリストが必要です。問題は次のとおりです。リストから任意の項目にアクセスしているときに、IDE はその型を認識しません。これは、Python ではその型で変数を宣言していないため、オートコンプリートがなく、クラスに移動してコピーする必要があるためです。属性名。アイデアをより明確にするために:

class AutomataBranch(object):
    def __init__(selfparams):
        self.Name="";
        self.nodes=[];

class LanguageAutomata(object):    
    def __init__(selfparams):
        self.cfgAutomata=[];#This has AutomaBranch Type

私が書いた場合、LanguageAutomata クラスの任意のメソッドで: cfgAutomata. 次に、名前属性が表示されません。それに対する解決策はありますか?

4

5 に答える 5

4

Python は強く型付けされており、Python リストも同様です。あなたの問題は、Python が動的に型付けされているという事実に起因しています。そのため、var には任意の型を含めることができるため、IDE はパラメーターの型を推測したり、メソッドのコード補完を提供したりすることはできません。

これが現状であり、明確な回避策はありません。それが問題である場合、おそらく動的言語は好みのツールではなく、開発スタイルに合ったものを使用する必要があります。誰にでも使えるツールがあります。

于 2009-08-18T11:56:20.953 に答える
4

IDE に合うようにコードを書くべきではありません - IDE はあなたをサポートするはずです。面倒なら乗り換えましょう。Python を適切に扱うエディタはたくさんあります。

于 2009-08-17T14:59:19.017 に答える
3

8 年後、実際に Python 3.6 で解決策を見つけました。

PEP484を使用すると、主に IDE とリンティングのために変数に注釈を付けることができます。

@Haniの回答を変更する:

x : AutomataBranch = self.cfgAutomata[i] 

これは、エラーを強調表示し、オートコンプリートを許可するために、適切な IDE によって取得されるようになりました。

于 2018-04-03T10:47:36.463 に答える
2

「強く型付けされた」のではなく「静的に型付けされた」と言うつもりだと思います。Python は強く型付けされています。コンパイル時にその型が何であるかはわかりません。

そうは言っても、Java や C# と同様に Python でも機能する IDE を見つけようとしているという考えを本当に捨てる必要があります。Python の動的型付けにより、これが困難になります。実際、私は強力な IDE が助けになるというよりもむしろ負担になると感じる傾向があります。

于 2009-08-18T11:58:57.017 に答える
-1

私は良い管理可能な解決策を見つけたと思います。実際には些細なことですが、役立つかもしれません(私は今それを使用しました)。リストにアクセスしたいときは、アクセスしたいオブジェクトを変数 ex に割り当てます。

x = AutomataBranch() 
x = self.cfgAutomata[i] 

最初の行は、それがタイプxからであることを IDE に認識させるためだけに使用されます。AutomatBranchその後、押すxと、すべてのメソッドとプロパティが視覚化されます。

いくらでもいいと思います。

于 2009-08-18T11:43:32.150 に答える