我正在通过书和互联网学习python,并且我被困在类问题上。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()
而且,我应该如何将“价值观”从一个阶层传递给另一个阶层?
如果我的一般方法和/或语法错误,请让我知道。任何和所有的建议欢迎(包括良好的阅读),因为我只是在学习。谢谢。
感谢您的彻底解答!很有帮助。我想了解如何将信息从一个类传递到另一个类。我想我已经将参数看作是类定义的一部分,我想知道这是否正确。但是,我不知道如何使用该功能。顺便说一下,我有一个VBA背景。 – dwstein 2012-08-17 16:23:06