def factory(aClass, *pargs, **kargs):        # Krotka argumentów o zmiennej liczbie i słownik
    return aClass(*pargs, **kargs)           # Wywołanie konstruktora klasy aClass

class Hack:
    def doit(self, message):
        print(message)

class Person:
    def __init__(self, name, job=None):
        self.name = name
        self.job  = job

object1 = factory(Hack)                               # Utworzenie obiektu Hack
object2 = factory(Person, 'Anna', 'programista')      # Utworzenie obiektu Person
object3 = factory(Person, name='Robert')              # Jak wyżej, z argumentem kluczowym i domyślną wartością

