Jython @property SyntaxError:输入不匹配"预期为CLASS [英] Jython @property SyntaxError: mismatched input '' expecting CLASS
问题描述
我试图从Jython解释器中的文档运行此示例:
I tried to run this example from the docs in the Jython interpreter:
http://www.jython.org/docs/library/functions.html
class C(object):
def __init__(self):
self._x = None
@property
def x(self):
"""I'm the 'x' property."""
return self._x
@x.setter
def x(self, value):
self._x = value
@x.deleter
def x(self):
del self._x
仅输入前4行(直到并包括@property
)都会产生SyntaxError:
Just entering the first 4 lines (up to and including @property
) yields a SyntaxError:
>>> class C(object):
... def __init__(self):
... self._x = None
... @property
File "<stdin>", line 4
@property
^
SyntaxError: mismatched input '' expecting CLASS
更新:我正在使用Jython 2.5.2
Update: I am on Jython 2.5.2
当我粘贴整个内容时,会发生以下情况:
Here's what happens when I paste the whole thing:
$ jython
Jython 2.5.2 (Debian:hg/91332231a448, Jun 3 2012, 09:02:34)
[Java HotSpot(TM) 64-Bit Server VM (Sun Microsystems Inc.)] on java1.6.0_45
Type "help", "copyright", "credits" or "license" for more information.
>>> class C(object):
... def __init__(self):
... self._x = None
... @property
File "<stdin>", line 4
@property
^
SyntaxError: mismatched input '' expecting CLASS
>>> def x(self):
File "<stdin>", line 1
def x(self):
^
SyntaxError: no viable alternative at input ' '
>>> """I'm the 'x' property."""
File "<stdin>", line 1
"""I'm the 'x' property."""
^
SyntaxError: no viable alternative at input ' '
>>> return self._x
File "<stdin>", line 1
return self._x
^
SyntaxError: no viable alternative at input ' '
>>> @x.setter
File "<stdin>", line 1
@x.setter
^
SyntaxError: no viable alternative at input ' '
>>> def x(self, value):
File "<stdin>", line 1
def x(self, value):
^
SyntaxError: no viable alternative at input ' '
>>> self._x = value
File "<stdin>", line 1
self._x = value
^
SyntaxError: no viable alternative at input ' '
>>> @x.deleter
File "<stdin>", line 1
@x.deleter
^
SyntaxError: no viable alternative at input ' '
>>> def x(self):
File "<stdin>", line 1
def x(self):
^
SyntaxError: no viable alternative at input ' '
>>> del self._x
File "<stdin>", line 1
del self._x
^
SyntaxError: no viable alternative at input ' '
>>>
更新2:谢谢!
对于可以控制哪个Jython版本的人们,请升级到2.5.3.对于那些无法控制它的人,请使用不带修饰符的旧式语法:
For people that have control over which Jython version, upgrade to 2.5.3. For those who don't have control over it, use the old style syntax without the decorators:
class C(object):
def __init__(self):
self._x = None
def getx(self):
return self._x
def setx(self, value):
self._x = value
def delx(self):
del self._x
x = property(getx, setx, delx, "I'm the 'x' property.")
推荐答案
It's a bug of jython 2.5.2, see this issue.
已修复在jython版本 2.5.3 中,请尝试2.5.3,它可以正常工作.
Fixed in jython version 2.5.3, try 2.5.3, it works.
这篇关于Jython @property SyntaxError:输入不匹配"预期为CLASS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!