我正在从另一个类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>
答案 0 :(得分:0)
def createX(self):
X = someObjectDefinedInJavaLang(self.a, self.b)
return X