我從另一個類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