在哪里可以找到用于在Python类型模块中调用各种类型的文档?

时间:2011-02-08 13:01:33

标签: python documentation

在处理一些自定义序列化时,我一直在使用types模块。让我感到沮丧的一件事是,文档根本没有说明如何实际调用类型。一个例子:types.CodeType - The type for code objects such as returned by compile().是的,那么 12 参数呢?

>>> types.CodeType()
Traceback (most recent call last):
  File "<string>", line 1, in <fragment>
TypeError: code() takes at least 12 arguments (0 given)

现在,我通常可以从Python文档中的其他各个位置或网上获取信息。例如,我猜new.code(argcount, nlocals, stacksize, flags, codestring, constants, names, varnames, filename, name, firstlineno, lnotab)types.CodeType所期望的参数列表相同(尽管,参数列表几乎不算是一个好的文档)。

但严重的是,有没有人知道实际描述types中可能的来电的文档?

编辑:我刚刚注意到一个可能有点帮助的替代方案...... help(types.CodeType)等。

1 个答案:

答案 0 :(得分:2)

实际实例化types模块中的类型通常不是很有用。它们的目的是在isinstance()调用中使用,其中一些根本无法实例化(例如types.GeneratorType)。

如果仅仅是好奇心,请查看交互式口译员提供的文档,例如

help(types.CodeType)

如果您真的认为需要来实现这些类型,我会很想听到一个示例用例:)

编辑:以下是适用于Python 2.5到2.7的types模块中类型的完整分类列表。如果将多个类型放在同一行上,则它们只是同一类型的别名。

  • 根本无法实例化10种类型:

    BuiltinFunctionType, BuiltinMethodType
    DictProxyType
    EllipsisType
    FrameType
    GeneratorType
    GetSetDescriptorType
    MemberDescriptorType
    NoneType
    NotImplementedType
    TracebackType
    
  • 16种类型是内置名称的别名:

    BooleanType                 bool
    BufferType                  buffer
    ComplexType                 complex
    DictType, DictionaryType    dict
    FileType                    file
    FloatType                   float
    IntType                     int
    ListType                    list
    LongType                    long
    ObjectType                  object
    SliceType                   slice
    TupleType                   tuple
    TypeType                    type
    StringType                  str
    UnicodeType                 unicode
    XRangeType                  xrange
    

    要实例化这些内容,最好使用内置名称。

  • 其余6种类型都有有用的文档字符串:

    ClassType
    CodeType
    FunctionType, LambdaType
    InstanceType
    MethodType, UnboundMethodType
    ModuleType
    

    ClassTypeInstanceType可以被认为是过时的,因为它们指的是旧式的类。