0

Python のネストされたクラスで少しジレンマを抱えています。私がやろうとしているのは、クラスAの最上位にある関数から変数を取得し、それらをサブクラスBで使用することです.このようなもの

 class A:
   def function_A():
      value = 5

      class B:
        def function_B(self):
            print (A.value)

以下のこのメソッドは、変数を以下のようなクラス変数に変換すると機能しますが、私が望むことはしません:

 class A:
   value = 5

      class B:
        def function_B(self):
            print (A.value)

これは不可能だと思うので、誰かが回避策を提供できますか?

4

2 に答える 2

1

変数valueは に対してローカルfunction_Aであり、そのメソッドの実行中にのみ存在します。実行されていないときは何もアクセスする必要はありませんfunction_B。特に、最初の例では、の属性でも、のインスタンスの属性でもありませんAA

そのような で実際に何をしようとしているのか、コードからは明らかではないvalueため、さらに提案することは困難です。

于 2016-02-14T22:15:29.300 に答える
-1

変数は関数内で定義されているvalueため、クラス A には属性がありません。したがって、クラスの属性としてアクセスする必要はありませんが、同じスコープ内にあるため、クラスからアクセスできる通常の変数としてアクセスする必要があります。前を削除する必要がありますvaluefunction_AvalueBA.value

例:

class A:
    def function_A():
        value = 5

        class B:
            def function_B():
                print (value)

        var = B
        var.function_B()

test = A
test.function_A()
于 2016-02-14T21:56:54.163 に答える