Skip to content

objcode/python-prototype

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

#Prototypical Inheritance for Python

Implement javascript prototypal inheritance in python. This implementation will allow you to create new prototypes on the fly, or set prototypes for classes.

Usage:

You can use it to make lightweight children from an existing object.

obj = Parent() obj_child = prototype(obj) 

You can use it to make static prototypes for classes.

obj = Parent() @prototype(obj) class Child(object): pass obj2 = Child() 

Exlicit Generation

In some rare cases you must explicitly force a clone or a decorator to be created. If the object contains a new property you must explicitly call .new to force a clone to be made.

obj = Parent() obj.new = 1 obj_child = prototype(obj).new 

If the object contains a __call__ property, you must explicitly create a decorator with the extend=True keyword argument.

obj = Parent() obj.__call__ = 1 @prototype(obj, extend=True) class Child(object): pass 

##Nested Prototypes

Prototypes can extend prototypes as many levels as you want. One note, prototypes extending prototypes must use .new and extend=True.

obj = Parent() child = prototype(obj) grandchild = prototype(obj).new 

(c) 2011 Sauce Labs

About

Implement javascript style inheritance in Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages