私は本とインターネットを介してPythonを学習していますが、クラスの問題に固執しています。python:別のクラスのクラスのインスタンスを作成する(一般的な例を含む)
2質問:
- どのように私は別の(別の)クラスの1クラスのインスタンスを作成するのですか?
- クラスとネスト(?)クラスの間で変数を渡すにはどうすればよいですか?
クラスのインスタンスを別の(別の)クラス内に作成しようとすると、メソッド内でそのインスタンスを作成できます。コード:
私はFOOクラスにアクセスすることができますが、これは他のBARメソッドの情報ですか?もしそうなら、どうですか?
私は、次を試してみましたが、エラーを得た:ここ
import os
class FOO():
def __init__(self):
self.values = [2, 4, 6, 8]
def do_something(self, x, y):
os.system("clear")
z = self.values[x] * self.values[y]
print "%r * %r = %r" % (self.values[x], self.values[y], z)
class BAR():
def __init__(self):
foo1 = FOO()
def something_else(self, a, b):
foo1.do_something(a, b)
bar = BAR()
bar.something_else(1, 2)
は誤りです:
Traceback (most recent call last):
File "cwic.py", line 22, in <module>
bar.something_else(1, 2)
File "cwic.py", line 19, in something_else
foo1.do_something(a, b)
NameError: global name 'foo1' is not defined
私は私が使用したのと同じエラーを取得:
def __init__(self):
self.foo1 = FOO()
また、あるクラスから別のクラスに '値'をどのように渡すべきですか?
一般的なアプローチや構文が間違っている場合は教えてください。私がちょうど学んでいるように、あらゆる、そしてすべての提案(朗読を含む)を歓迎します。ありがとう。
あなたの完全な答えをありがとう!非常に役立ちます。あるクラスから別のクラスにどのように情報を伝えるのかを理解しようとしています。私はクラス定義の一部として引数を見てきたと思うし、それが正しい方法かどうか疑問です。しかし、私はその機能の使い方を知らない。ちなみに、私はVBAの背景を持っています。 – dwstein