【问题标题】:Python 3 built-in functions and classesPython 3 内置函数和类
【发布时间】:2017-02-20 18:31:27
【问题描述】:

当我使用以下语句创建list

a = list('jane')

我是调用 Python 的内置 list 函数还是实例化 list 类。

我的理解是我们通过传递 'jane' 作为参数来实例化 list 类。

但是,Python 的文档 https://docs.python.org/3/library/functions.htmllist() 是内置函数。

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    文档明确说:

    class list([iterable])

    list实际上不是一个函数,而是一个可变序列类型

    您可以轻松检查:

    >>> type(list)
    type
    

    如果它是一个函数,function 将是使用type 提供的输出。

    您正在实例化一个list 对象,就像您创建自己的类并调用它一样。 type__call__ 本质上是被调用并设置您的实例,因此,尽管它们本身不是函数,但它们是可调用的。


    将它们列在该特定部分中的事实可能是为了方便起见,这可能会造成混淆,但阅读它的描述应该可以消除歧义。

    【讨论】:

      【解决方案2】:

      very documentation page you mention回答了您的问题:

      class list([iterable])
      list 实际上不是一个函数,而是一个可变序列类型,如 ListsSequence Types — list, tuple, range 中所述。

      在 Python 中,类和函数都是可调用的,因此在实践中,您可以将它们一视同仁。

      【讨论】:

        【解决方案3】:

        您正在实例化一个列表。

        class list([iterable]) 列表实际上不是一个函数,而是一个可变序列类型,如列表和序列类型中所述——列表、元组、范围。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-11-17
          • 1970-01-01
          • 1970-01-01
          • 2020-06-18
          • 2012-10-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多