0

次のような2つのファイルがあります

file1.py

class A:
 def method1:
  a = 5

file2.py

class B
 def method2:
  from file1 import A
   a = 10

ロジックは忘れてください。これは単なる例です。コードで a の値を操作したいと考えています。これを行うと、「グローバル名 a が定義されていません」というエラーが表示されます。どうすればこの問題を解決できますか。どんな助けでも大歓迎です

4

1 に答える 1

0

それを定義した方法は、そのメソッドのローカル変数です。あなたが欲しいのはself.a...

file1.py

class A:
    def method1:
        self.a = 5

file2.py

from file1 import A
class B:
    def method2:
        objecta = A()
        objecta.a = 10   

しかし、あなたのコメントを読むと、あなたが実際に望んでいるものは別のものです。

Class A:
    def __init__(self):
        self.a = 5

    def logic(self):
        do some stuff...

Class B:
    def solve(self):
        first = A()
        first.logic()
        second = A()
        second.logic()
        etc...

クラスでそれを行うポイントは、クラスの複数のインスタンスを作成できることです。init 関数は、ベースラインに基づいてそのクラスのオブジェクトを作成します。そのため、A オブジェクトを作成するたびに、元の設定で開始されます。

于 2013-09-24T02:46:49.570 に答える