gpt4 book ai didi

python - python 的所有 `__builtin__` 数据类型的列表在哪里?

转载 作者:行者123 更新时间:2023-11-28 17:26:12 24 4
gpt4 key购买 nike

我正在使用如下比较:

if type( self.__dict__[ key ] ) is str \
or type( self.__dict__[ key ] ) is set \
or type( self.__dict__[ key ] ) is dict \
or type( self.__dict__[ key ] ) is list \
or type( self.__dict__[ key ] ) is tuple \
or type( self.__dict__[ key ] ) is int \
or type( self.__dict__[ key ] ) is float:

我曾经发现,我错过了 bool 类型:

或类型( self.__dict__[ key ] ) 是 bool\,

好的 - 我想知道我错过了哪些其他类型?

我已经开始谷歌搜索了:

  • diveintopython3 :

    Python has many native datatypes. Here are the important ones:

    1. bool 值要么为 True,要么为 False。
    2. 数字可以是整数(1 和 2)、 float (1.1 和 1.2)、分数(1/2 和 2/3),甚至是复数。
    3. 字符串是 Unicode 字符的序列,例如一个 html 文档。
    4. 字节和字节数组,例如一个 jpeg 图像文件。
    5. 列表是值的有序序列。
    6. 元组是有序的、不可变的值序列。
    7. 集合是无序的值包。
    8. 字典是键值对的无序包。

为什么到处都在谈论许多类型,但我找不到所有类型的列表?它几乎总是只关于重要的

最佳答案

您可以遍历 __builtin____dict__ ,并使用 isinstance查看某物是否是一个类:

builtins = [e for (name, e) in __builtin__.__dict__.items() if isinstance(e, type) and e is not object]
>>> builtins
[bytearray,
IndexError,
SyntaxError,
unicode,
UnicodeDecodeError,
memoryview,
NameError,
BytesWarning,
dict'
SystemExit
...

(请注意,正如@user2357112 在优秀评论中指出的那样,我们明确排除了 object,因为它没有用。)

另请注意,isinstance 可以将元组作为第二个参数,您可以使用它来代替一系列 if。因此,你可以这样写:

builtins = tuple([e for (name, e) in __builtin__.__dict__.items() if isinstance(e, type) and not isinstance(object, e)])
>>> isinstance({}, builtin_types)
True

关于python - python 的所有 `__builtin__` 数据类型的列表在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38836524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com