diff options
author | Kyle K <kylek389@gmail.com> | 2021-06-02 18:19:03 -0500 |
---|---|---|
committer | Kyle K <kylek389@gmail.com> | 2021-06-02 18:19:03 -0500 |
commit | 579ec7341483cf8701332e4652c27158cb808dcd (patch) | |
tree | 4c7ed1abd30892f1351a6865ececa5a9cf0979ab /foo.py | |
parent | 3d99158564e8082222138cc1b1e0a7dfcd7e8f66 (diff) | |
download | PythonPractice-579ec7341483cf8701332e4652c27158cb808dcd.tar.gz PythonPractice-579ec7341483cf8701332e4652c27158cb808dcd.tar.bz2 PythonPractice-579ec7341483cf8701332e4652c27158cb808dcd.zip |
implement __new__ function in Square class
Diffstat (limited to 'foo.py')
-rw-r--r-- | foo.py | 13 |
1 files changed, 12 insertions, 1 deletions
@@ -1,10 +1,21 @@ class Foo: pass + def hello(): print('hello, world') + x = 13 class Square(): + def __new__(cls, x): + instance = super(Square, cls).__new__(cls) + instance.__init__(x) + return instance.squared def __init__(self, x): self.inital = x - self.squared = x**2 + self.squared = x**2 # without .self the variable would be shared among all instances + def __str__(self): + return str(self.__class__) + ": " + str(self.__dict__) + +area = Square(5.5) # if __new__ wasn't implemented, instead of 30.25 float print would call __str__ and return <class '__main__.Square'>: {'inital': 5.5, 'squared': 30.25} +print(area)
\ No newline at end of file |