我正在為 JMRI 撰寫腳本。我在使用 Jython2.7 的 JMRI 腳本環境中運行了以下示例。以下代碼片段缺少匯入陳述句,但我認為它們不相關。開始。
class MyClass:
"""A Test - MyClass is a test"""
x=1
def __init__(self):
self.y = x
print 'Initialized'
def printMe(self):
print self.y
a = MyClass
print a.x,a.y,a.__doc__
在上面的代碼片段中,我收到以下錯誤訊息:
引起:回溯(最近一次呼叫最后一次):檔案“”,第 20 行,在 AttributeError 中:類 MyClass 沒有屬性“y”
最后一行在生成錯誤訊息之前列印 ax (1)。我已經構建了其他具有將類變數分配給區域變數的方法的物件。我可以通過 instance.attribute 表單成功地使用它們。但在這個例子中,'Initialized' 不列印,y 保持未定義。
有任何想法嗎?
uj5u.com熱心網友回復:
a = MyClass
這不會實體化新的 MyClass 物件,而是設定a為 class MyClass。讓我們來看看:
print(a)
# <class '__main__.MyClass'>
相反,您可能想要:
a = MyClass()
print(a)
# <__main__.MyClass object at 0x107a2af10>
uj5u.com熱心網友回復:
感謝你們對我的幫助。對于一個新的 Pythonian 來說,實際編譯的語法錯誤很難:)
作業輸出:
>>>
... class MyClass:
... """A Test - MyClass is a test"""
... x=1
... def __init__(self,x):
... self.y = x
... print 'Initialized'
... def printMe(self):
... print self.y
... a = MyClass(MyClass.x)
... print MyClass.x,a.y,a.__doc__
Initialized
1 1 A Test - MyClass is a test
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/317925.html
