【问题标题】:How does python collections accept multiple data types?python集合如何接受多种数据类型?
【发布时间】:2020-07-09 23:28:48
【问题描述】:

最流行的 python 版本是 CPython,用 C 编写。我想知道的是,当 C 数组只能同时存储数据类型时,如何使用 C 编写 python 集合?

【问题讨论】:

  • 我假设数据的统一类型是一个指向对象的指针,而python中的一切都是基本类型object
  • “最流行的 Python 版本是 Cython”——你想到的是 CPython。 Cython 是一个为 CPython 编写 C 扩展的工具。
  • 感谢您的链接和澄清,我会检查一下!!
  • CPython 是开源的,为什么不查看代码:github.com/python/cpython

标签: python arrays c


【解决方案1】:

这不是 python 在 C 中的做法,但我用 Java 编写了一种小型解释语言(它也只允许具有 1 种数据类型的数组/列表)并实现了混合类型列表。对于每种类型的值,我都有一个 Value 接口和一个类,这些类实现了 Value 接口。我有 FunctionValue 类、StringValue 类、BooleanValue 类和 ListValue 类,它们都实现了 value 接口。 ListValue 类有一个类型为List<Value> 的字段,其中包含列表的元素。 Value 接口上的所有方法及其实现类,如数字加法、字符串附加、列表访问、函数调用等。最初接受 Value 对象,并根据它的实际类型做不同的事情。

您可以在 C 中执行类似的操作,尽管级别较低,因为它没有接口和类来帮助您管理类型。

【讨论】:

    猜你喜欢
    • 2020-08-10
    • 2021-06-11
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 2012-03-25
    • 2011-02-24
    相关资源
    最近更新 更多