Python Type - Dynamic Class

About

With the three arguments of the type function, you can create dynamically a new class (ie a type object).

type is a class that creates class objects

type.__class__
<class 'type'>

Syntax

class type(name, bases, dict)

where:

class MyMinimalClass(object):
          pass
type('MyMinimalClass', (), {})

Management

Create Attribute (variable, function)

The following two statements from the doc create two identical type objects with two attributes:

  • one as a variable
  • an other as function

This code:

class X(object):
        a = 1;
        def echo(self):
          print(self.a)

is identical with the below one.

def echo_a(self):
          print(self.a)

X = type('X', (object,), dict(a=1,echo_a=echo_a))
# or
X = type('X', (object,), { 'a':1, 'echo_a': echo_a } )

Create a class form a parent (Inheritance)

Python - Class Inheritance

FooChild = type('FooChild', (Foo,), {})

where:

  • Foo is the parent class
  • FooChild is the child class

Documentation / Reference


Powered by ComboStrap