• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Jython @property SyntaxError:输入不匹配"预期为CLASS

用户头像
it1352
帮助1

问题说明

我试图从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.")

正确答案

#1

这是jython 2.5.2的错误,请参见查看全文

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /reply/detail/tanhcgabeh
系列文章
更多 icon
同类精品
更多 icon
继续加载