Scala-like CaseClasses for Python
Zero-dependency scala-like case classes for Python 2 + 3.
- Simple usage: Just inherit from case_class.CaseClass
- Simple Installation: Zero dependencies
- plays well with inheritance
- CaseClass and
AbstractCaseClass`usable as a Mix-In
- Case-to-case inheritance forbidden by default
- use AbstractCaseClass to allow only subclasses to be instantiated
- use InheritableCaseClass to override allow both super and subclasses to be instantiated.`
- also plays well with Multiple Inheritance * super() calls still work as expected
- CaseClass and
- equality based on arguments
- calls constructor only once per combination of arguments
- works with == operator and is (referential equality) operator.
- automatic repr() function
- works in both Python 2 and Python 3!
This package is published on the Python Package Index Installation can be done simply via pip:
pip install case_class
Alternatively, clone this repository and run setup.py:
git clone https://github.com/tkw1536/PythonCaseClass python setup.py install
# Import the CaseClass module from case_class import CaseClass # Create a symbol case class class Symbol(CaseClass): def __init__(self, name): self.name = name # Create an instance x = Symbol("x") print(x) # Symbol('x') # And create another one also_x = Symbol('x') print(x == also_x) # equality via operator print(x is also_x) # referential equality
Another example can be found in example.py.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|File Name & Checksum SHA256 Checksum Help||Version||File Type||Upload Date|
|case_class-0.0.8-py2-none-any.whl (15.0 kB) Copy SHA256 Checksum SHA256||2.7||Wheel||Nov 24, 2016|
|case_class-0.0.8-py3-none-any.whl (15.0 kB) Copy SHA256 Checksum SHA256||3.5||Wheel||Nov 24, 2016|
|case_class-0.0.8.tar.gz (12.2 kB) Copy SHA256 Checksum SHA256||–||Source||Nov 24, 2016|