私はPythonでクラスを作成し始めていますが、用語について非常に混乱しているため、質問の仕方がわからないため、質問への回答が見つかりません。したがって、この投稿の二重タイトルです。次のコードを使用して、質問の仕方がわからないという質問を明確にしようとします。
単純なクラス内にメソッドを作成したい:
class SimpleClass:
add(self,Value)
#Magic goes here
SC=SimpleClass()
このメソッドは、クラスに新しい変数を追加するのと同等である必要があります。
SC.NewVariableInsideTheClass="test"
ただし、メソッドを介して、たとえば:
SC.NewVariableInsideTheClass.add("test")
どちらの場合も、「NewVariableInsideTheClass」は以前は存在しなかったため、クラス内で初めてその変数を作成しています。
したがって、メソッドは最初に存在しないインスタンスを作成し(クラス内の変数の名前だと思います)、その値を「テスト」に設定する必要がありますが、その方法を実際に見つけたり検索したりできません.. .
私が必要とするものに対する正しい質問はどれですか??
どうもありがとうございました!
- - - - - - - - - 編集 - - - - - - - - - - -
わかりましたので、私がやりたいことは、実行時に同じ結果を得ることです:
SC.NewVariableInsideTheClass.add("test")
そして行うとき:
SC.NewVariableInsideTheClass.add("test")
ただし、どちらもクラスの外で実行する必要があり、「NewVariableInsideTheClass」が初めて使用されます。ここでの目的は、クラスを変数ストレージとして使用することです。たとえば、変数が初めて使用されるときに何かが発生し、既に存在する場合 (SC.NewVariableInsideTheClass の形式で)、別の方法で使用できるようになります。 . これが今より具体的であることを願っています...
2 番目の編集; 理由 -------------------------
うわー、あなたの回答の質と詳細に感銘を受けました。とても感謝しています! 私がこれを望む理由を知っていただきたいです: 私は簡単な Python スクリプト IDE を作成しています (現在は主に Python の学習用であり、まだ役に立ちません)。したがって、コードの基本は、途中で新しい変数を作成することです。プログラムは関数も作成するため、変数を作成して処理するための最初の解決策は、作成されたプログラム内のすべての変数をグローバルにし、新しい関数ごとにそれらを再度呼び出すことでした。そのコードは醜いので、クラスを学習して使用することにしましたが、変数はプログラムごとに異なるため、関数の作成を標準化したい (つまり、最初の関数かどうかを知る必要はなく、初期化する必要がある場合)変数、または既に存在する場合)、次のことができるようにする方法: -新しい変数が存在しない場合でも、変数という名前のリストに、簡単にアクセスできる名前で保存します -リスト内の新しい項目として新しい値で以前の変数を拡張できる -それらを取得できる値 グローバルを使用せずに、このソリューションに出くわしました。実際に私はあなたのコードを変更しました。今はあなたのコードを使用していますが、「追加」という名前の代わりに「追加」という名前を付けたので、自由に行うことができます:
SC.NewVar.append('これは新しい値です') SC.NewVar.append('これは新しい値です')
そして、最初は作成されますが(存在しないため)、2回目に新しい値が追加されるため、それを呼び出したり、再生したり、自動生成された他の関数から使用したりできます-コード:)