# Concrete Objects Layer

The functions in this chapter are specific to certain Python object types. Passing them an object of the wrong type is not a good idea; if you receive an object from a Python program and you are not sure that it has the right type, you must perform a type check first; for example, to check that an object is a dictionary, use `PyDict_Check()`. The chapter is structured like the “family tree” of Python object types.

警告

While the functions described in this chapter carefully check the type of the objects which are passed in, many of them do not check for NULL being passed instead of a valid object. Allowing NULL to be passed in can cause memory access violations and immediate termination of the interpreter.

## Fundamental Objects

This section describes Python type objects and the singleton object `None`.

- Type Objects
- The `None` Object

## Numeric Objects

- Integer Objects
- 布尔对象
- Floating Point Objects
- Complex Number Objects
  - Complex Numbers as C Structures
  - Complex Numbers as Python Objects

## Sequence Objects

Generic operations on sequence objects were discussed in the previous chapter; this section deals with the specific kinds of sequence objects that are intrinsic to the Python language.

- Bytes Objects
- bytearray 对象
  - 键入检查宏
  - Direct API functions
  - Macros
- Unicode Objects and Codecs
  - Unicode Objects
    - Unicode Type
    - Unicode Character Properties
    - Creating and accessing Unicode strings
    - Deprecated Py_UNICODE APIs
    - Locale Encoding
    - File System Encoding
    - wchar_t Support
  - Built-in Codecs
    - Generic Codecs
    - UTF-8 Codecs
    - UTF-32 Codecs
    - UTF-16 Codecs
    - UTF-7 Codecs
    - Unicode-Escape Codecs
    - Raw-Unicode-Escape Codecs
    - Latin-1 Codecs
    - ASCII Codecs
    - Character Map Codecs
    - MBCS codecs for Windows
    - Methods & Slots
  - Methods and Slot Functions
- Tuple Objects
- Struct Sequence Objects
- 列表对象

## Container Objects

- 字典对象
- Set Objects

## Function Objects

- Function Objects
- Instance Method Objects
- 方法对象
- Cell Objects
- 代码对象

## Other Objects

- File Objects
- Module Objects
  - Initializing C modules
    - Single-phase initialization
    - Multi-phase initialization
    - Low-level module creation functions
    - Support functions
  - Module lookup
- Iterator Objects
- 描述符对象
- Slice Objects
- Ellipsis Object
- MemoryView objects
- Weak Reference Objects
- Capsules
- 生成器对象
- 协程对象
- DateTime Objects