I'm new to OOP in Python and lets assume I have a class that does a simple calculation:
class Calc:
def __init__(self, n1, n2):
self.n1 = n1
self.n2 = n2
def sum(self):
return self.n1 + self.n2
In this simplified example, what is the best way to validate the attributes of the class? For example, say if I expect a float for n1 and n2 such that I define my constructor as:
self.n1 = float(n1)
self.n2 = float(n2)
If n1 or n2 was None I would get an Attribute Error as NoneType can't be a float - for some reason, it feels 'wrong' for we to have logic in the constructor of Calc class to catch this.
Would I have some sort of validation logic before ever creating the instance of the class to catch this upstream?
Is there a way for me to use some technique to validate on the fly like perhaps decorators or property annotations?
Any advice is appreciated
propertiesNoneimply)? Do you want verification only on parameters passed to the constructor, or on any assignment of attributes? Do you want a static or dynamic verification?