0

我正在从另一个类 C 中的方法创建对象 X。然后我试图通过将它作为参数传递来在该类 C 的方法中引用该对象,但我得到错误名称 X 未定义。该对象是在不同的命名空间中创建的吗?从类本身生成的对象是在另一个模块的 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 拾取)

4

1 回答 1

0
def createX(self):
    X = someObjectDefinedInJavaLang(self.a, self.b)
    return X
于 2013-05-12T16:43:07.593 回答