Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在类中创建对象-对象在哪里?_Python_Class_Jython - Fatal编程技术网

Python 在类中创建对象-对象在哪里?

Python 在类中创建对象-对象在哪里?,python,class,jython,Python,Class,Jython,我从另一个类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

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

这会抛出相同的错误。我知道,当代码成功运行时,对象会在“某处”被创建(要做到这一点,他需要对象,因为在某个点上,进程会被java获取),而我不尝试进一步访问对象自己的属性

,而不是根据代码。打字错误y=classC(a,b)?您的
createX
不会返回创建的对象。所以那个代码不能工作。但是对于没有定义的X,确切的错误信息是什么?y从哪里来?对不起,不知道为什么我突然想到了y。编辑,所以希望有更多的意义现在请张贴完整的错误信息和回溯。FWIW我刚刚运行了你的代码片段(缺少部分的模型),我没有得到任何错误。
c = classC(a, b)
X = c.createX()
X.useSomeMethodDefinedinObject(v)
def createX(self):
    X = someObjectDefinedInJavaLang(self.a, self.b)
    return X