クラスから別の値に値を渡そうとしているので、第1クラスと第2クラスのコンストラクタ間で値を渡しても問題ありません。しかし、クラスコンストラクタからいくつかの値にアクセスしようとするたびに、その変数がメソッドによって取得されているように見えません。ここではその後python:クラスと外部のコンストラクタの間で値を渡す
from file2 import *
class Bar():
def __init__(self, foo):
self.var = foo.h
print("+++++++++++++++++++++++++")
print(self.var)
def function():
print" the values is : ",self.var
function()
b = Bar(Foo())
私file2.pyコードは次のとおりです:
class Foo():
def __init__(self):
self.x = 6
self.y = 2
self.h = self.x+self.y
私は内部の値を取得しようとするたびにという私の問題ここで
はFooクラスが含まれているfile1.pyという名前のファイルがありますfunction()私はこの部分で立ち往生しています。エラー出力:
print" the values is : ",self.var
NameError: global name 'self' is not defined
関数 'def'は字下げする必要があります。そうでなければ、クラス定義の一部ではありません。 – Jens
@Jens - 私はコピーペーストエラーだと思います。コードがそういうものでコンパイルされないからです。 – TigerhawkT3
@ TigerhawkT3: 'def関数()'については分かりませんが、 '__init__'のために私は同意します。 – Jens