我从另一个类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拾取),因此当我不尝试进一步访问对象自己的属性时,该对象被“创建”在某处“
不是根据那个代码你不是。错字? y = classC(a,b)? – 2013-05-12 16:24:30
您的'createX'不会返回创建的对象。因此,代码无法工作。但是对于X没有定义,确切的错误信息是什么? – 2013-05-12 16:26:50
'y'从哪里来? – 2013-05-12 16:38:42