我正在从另一个类 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 拾取)