Python Type - Dynamic Class

> Procedural Languages > Python > Python - Data Type

1 - 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'>
Advertising

3 - Syntax

class type(name, bases, dict)

where:

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

4 - Management

4.1 - 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 } )
Advertising

4.2 - 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

5 - Documentation / Reference