Update page 'Day 5 homework - Sloetjes'
+15
-1
@@ -20,10 +20,24 @@ class Vault:
|
|||||||
if key != '_original_attrs' and self.__dict__ != self._original_attrs:
|
if key != '_original_attrs' and self.__dict__ != self._original_attrs:
|
||||||
print('Attribute deleted!')
|
print('Attribute deleted!')
|
||||||
```
|
```
|
||||||
##### An example usage of the 'Vault' class:
|
##### An example usage of the Vault class:
|
||||||
```
|
```
|
||||||
v = Vault()
|
v = Vault()
|
||||||
print(v.treasure) # prints 'gold'
|
print(v.treasure) # prints 'gold'
|
||||||
v.x = 10
|
v.x = 10
|
||||||
print(v.treasure) # prints 'Attribute deleted!\ngold'
|
print(v.treasure) # prints 'Attribute deleted!\ngold'
|
||||||
```
|
```
|
||||||
|
#### To get the other person's class to return "gold", despite any countermeasures they've implemented:
|
||||||
|
###### It can be achieved by creating a new class that inherits from the Vault class and overrides its _treasure attribute.
|
||||||
|
```
|
||||||
|
class GoldVault(Vault):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
self._treasure = 'gold'
|
||||||
|
```
|
||||||
|
###### Create a GoldVault object that inherits all methods and attributes from the Vault class and returns 'gold' as the value of the _treasure attribute:
|
||||||
|
```
|
||||||
|
>>> gv = GoldVault()
|
||||||
|
>>> gv.treasure
|
||||||
|
'gold'
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user