Jython @property SyntaxError:输入不匹配"预期为CLASS [英] Jython @property SyntaxError: mismatched input '' expecting CLASS

查看:274
本文介绍了Jython @property SyntaxError:输入不匹配"预期为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.")

推荐答案

这是jython 2.5.2的错误,请参见

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆