Sitelet https://web.archive.org/web/20200920184109/https://github.com/objcode/python-prototype
Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 

readme.md

#Prototypal 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()

Explicit 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(child).new

(c) 2011 Sauce Labs

About

Implement javascript style inheritance in Python

Resources

License

Releases

No releases published

Packages

No packages published

Languages

You can’t perform that action at this time.