2009-08-17 24 views
2

私はPythonのためにeclipsを使用していますが、私は問題に直面しています。私は多くのプロパティを持つ多くのクラスを持ち、私の宣言されたクラスのオブジェクトのリストが必要です。問題は次のとおりです:リストから項目にアクセスしているときに、Pythonで変数が宣言されていないため、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のアイデアがより明確にするため 。それからそれは私に名前を与えてくれません属性 それのための解決策はありますか?

+0

PyDevを使用していますか? http://pydev.sourceforge.net/ – mcandre

+0

self.cfgAutomataには種類のリストがあります。あなたは実際にself.cfgAutomata []のタイプを取得しようとしていますか? –

+1

ここにタイプミスがあります。 \ _ \ _ init \ _ \ _()にカンマがありません: def __init __(self、params): – hughdbrown

答えて

5

あなたのIDEに合ったコードを書くべきではありません。IDEがあなたをサポートするはずです。それに問題がある場合は、切り替えてください。 Pythonを適切に扱う編集者がたくさんいます。

+2

上記のコードでself.cfgAutomata [0]のタイプを見つけるIDEはありません。その型(Objectのサブクラスの外)を知ることはできません。 –

+1

実際に私はpydevを使用していますが、IDEまたはPythonインタプリタにもNameプロパティが存在するかどうかを知らせる方法はありません。 "AutomataBranch x"そのような記述は、私はxを追加します。それはNameプロパティを助け、表示します。 – Hani

-2

私は良い管理可能な解決策を見つけたと思う。実際にはそれは簡単ですが、私は今使ってみました。最初の行は、IDEがxAutomatBranchタイプからのものであることを知っているにするためにのみ使用され

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

:私はリストにアクセスしたいとき その後、私は、変数の元にアクセスしたいオブジェクトを割り当てます。その後、xを押すと、すべてのメソッドとプロパティが視覚化されます。

いくらか良いと思います。

+2

これは非常に悪い考えです。自動補完を行う特別な方法でコーディングすると、これはCRAZYです。 –

+2

あなたは正しいかもしれませんが、問題は私が常にMicrosoft Visual Studioを使用していて、突然新しいIDEに変更することは容易ではないという事実を超えています。もちろん、コードをリファクタリングするつもりです。 あなたのアドバイスをいただきありがとうございます。 Hani Almousli .... – Hani

4

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

これはそうですが、きれいな回避策はありません。それが問題ならば、おそらくダイナミクス言語はあなたの好みのツールではなく、開発スタイルに合ったものを使うべきです。みんなのためのツールがあります。

2

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

これは、JavaやC#の場合と同じように、Pythonでもうまく動作するIDEを見つけることを実際に放棄する必要があるということです。 Pythonの動的なタイピングはこれを困難にします。実際、強力なIDEは助けよりも負担が大きいことがわかります。

関連する問題