这个有效的Python语法怎么样?

时间:2018-03-15 17:58:06

标签: python

以下是SqlAlchemy的一部分,我试图弄清楚这是如何有效的Python语法。我知道代码有效,我只是想了解这里做了什么以及它是如何有效的。这些不是嵌套类,它们是独立的类。我希望在每个班级声明之后都能通过,我很确定它没有重要意义。

class InstrumentedList(list):
    """An instrumented version of the built-in list."""


class InstrumentedSet(set):
    """An instrumented version of the built-in set."""


class InstrumentedDict(dict):
    """An instrumented version of the built-in dict."""


__canned_instrumentation = {
    list: InstrumentedList,
    set: InstrumentedSet,
    dict: InstrumentedDict,
}

__interfaces = {
    list: (
        {'appender': 'append', 'remover': 'remove',
         'iterator': '__iter__'}, _list_decorators()
    ),

    set: ({'appender': 'add',
           'remover': 'remove',
           'iterator': '__iter__'}, _set_decorators()
          ),

    # decorators are required for dicts and object collections.
    dict: ({'iterator': 'values'}, _dict_decorators()) if util.py3k
    else ({'iterator': 'itervalues'}, _dict_decorators()),
}

1 个答案:

答案 0 :(得分:1)

只要在类定义中有 something ,它就是有效的python语法。

例如:

class FooBar:
    """ foobar """

这没关系,因为在类定义中有一些东西(在这种情况下是一个docstring,可以使用__doc__属性访问)。

但是,没有任何内容的类定义是无效的语法:

class FooBar:

运行此命令时,会产生输出:

SyntaxError: unexpected EOF while parsing