Я изучаю Python по книге и в Интернете, и я застрял в проблеме с классом.
2 вопроса:
Когда я пытаюсь создать экземпляр класса в другом (отдельном )классе, я могу сделать это внутри метода. Вот код:
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):
pass
def something_else(self, a, b):
foo1 = FOO()
foo1.do_something(a, b)
bar = BAR()
bar.something_else(1, 2)
Однако позволит ли это мне получить доступ к классу 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()
Кроме того, как мне передать «значения» из одного класса в другой?
Пожалуйста, дайте мне знать, если мой общий подход и/или синтаксис неверны. Любые и все предложения приветствуются (, включая хорошее чтение ), поскольку я только учусь. Спасибо.