0

これはおそらくばかげた質問ですが、私が docs.python.org と wx.python.org で見たすべてのドキュメントは、オブジェクトのほとんどの init 関数が init (self、parent など)の形式をとっていることを示しています。等)

Ands これらの関数へのほとんどの呼び出しは、self または parent の値を渡しません。

そう:

  1. 値が渡されない場合、これらの値はどこから来るのか、および
  2. クラススコープ外で定義された関数からそれらを参照するにはどうすればよいですか?

サンプルファイル 1 (PseudoClass.py):

class PseudoClass(someValidClass):
    def __init__(self, parent, title):
        someValidClass.__init__(self, parent, title)

そして別のファイルで:

import PseudoClass
instance = PsedoClass('My Title')
def someFunction(instance):
    (x,y) = <<something which returns the self and parent values>>

常に使用するのは安全ですか?また、自分自身のポインターを取得するにはどうすればよいですか?instance.parent

編集: 何らかの理由で、コード blockind が初めて機能しませんでした.... grr ..

編集:わかりました、この質問をする方法についての私のすべての熟考のために、私が質問してから今までに行った調査は、その質問が私が知りたいことに対して正しくないことを示しました. 一方、nneonneo は、ここで尋ねられたことに (少なくとも部分的には) 答えました。これをレビューする際に他の人の時間を無駄にしないように、解決済みとしてマークします。

4

1 に答える 1

1

Python では、は(典型的なメソッド呼び出しの場合)selfの左側にあるオブジェクトであることに注意してください。つまり、実際には を呼び出します。したがって、インスタンス自体を使用するだけで、いつでもクラスの外部を参照できます。.foo.func(a,b)FooClass.func(foo, a, b)self

parentは別の話です...私の知る限り、常に最初のパラメーターとして wxPython コンストラクターに渡す必要があります (その動作が派生クラスによって変更されない限り)。したがって、それが機能する可能性は低いようPseudoClass('My Title')です。

于 2012-09-21T07:01:49.407 に答える