私は約 1 週間ほど Python を学習してきましたが、コードがかなり大きくなり、少し乱雑になった後、別のクラス ファイルなどに分割することにしましたが、ちょっとした問題に遭遇しました。
SO で Google を検索してみましたが、特定の問題が見つからなかったので、以前に尋ねられた場合はご容赦ください。
2 つのファイルを考えてみましょう。test.py と testClass.py test.py にグローバル変数があり、これは test.py でも SET になりますが、testClass.py の関数でその変数にアクセスしたいと考えています。説明に役立つコードを次に示します。
test.py は次のようになります。
import testClass
dict = {}
z = 5
dict['test'] = testClass.testClass(1, 3)
print dict['test'].sum()
testClass.py は次のようになります。
class testClass:
def __init__(self, x, y):
self.foo = x
self.bar = y
def sum(self):
global z
return self.foo + self.bar + z
現在、通訳者は吐き出しています:
NameError: global name 'z' is not defined
クラスと変数スコープのPythonリファレンスを読み直した後、私はそれを釘付けにしたと思いましたが、明らかにそうではありませんでした。
このすべての結果は、オブジェクト インスタンスのディクショナリを繰り返し処理し、外部クラス内に含まれる一連のさまざまなチェック関数などを実行できるようになることです。