在类中创建一个对象 - 该对象在哪里?

时间:2013-05-12 16:18:44

标签: python class jython

我正在从另一个类C中的方法创建一个对象。然后我试图通过将它作为参数传递来引用该类C的方法中的该对象,但是我得到的错误名称X未定义。该对象是否在不同的命名空间中创建? 从类本身生成的对象是在另一个Module中的java脚本中定义的类。

模块B

from moduleA import *
from moduleX import *

c = classC(a, b)
X = c.createX()
c.doStuffWithX(X, v)

模块A

class classC(object):
    def __init__(self, a, b):
        self.a = a
        self.b = b

    def createX(self):
        X = someObjectDefinedInJavaLang(self.a, self.b)
        return X #as suggested by Bruno - still getting the error

    def doStuffWithX(self, X, v):
        X.useSomeMethodDefinedinObjectX(v)

我希望你能跟着我。试图使结构清晰,不确定我是多么成功。

我还试图看看我是否可以直接引用该对象而不是通过类属性

c = classC(a, b)
X = c.createX()
X.useSomeMethodDefinedinObject(v)

这会引发同样的错误。我知道,当代码成功运行时,对象会在“某处”创建(并且这样做,当需要进一步访问对象自己的属性时,他需要对象,因为某些时候进程被java拾取) p>

1 个答案:

答案 0 :(得分:0)

def createX(self):
    X = someObjectDefinedInJavaLang(self.a, self.b)
    return X