1spooky_constant = "spooky_"
2
3def contains_spooky(string):
4 if(len(string) < len(spooky_constant)):
5 return False
6 for i in range(len(spooky_constant)):
7 if string[i] != spooky_constant[i]:
8 return False
9 return True
10
11def is_dunder(name):
12 if(len(name) < 2):
13 return False
14 return name[0] == "_" and name[1] == "_"
15#разбрах, че трябват 2 реда между дефинициите на различни класове, но не съм сигурен в този случай Функция -> Клас
16#Колко празни реда да оставя, затова нека запълним 2 реда с коментар
17class HauntedMansion:
18 def __init__(self,**kwargs):
19 for key, value in kwargs.items():
20 object.__setattr__(self, key, value)
21
22 def __setattr__(self, name, value):
23 object.__setattr__(self,name,value)
24
25 def __getattribute__(self, name):
26 try:
27 if is_dunder(name):
28 return object.__getattribute__(self, name)
29 if contains_spooky(name):
30 name = name[len(spooky_constant):] # slicing, махаме spooky_ частта
31 return object.__getattribute__(self, name)
32 else:
33 return "Booooo, only ghosts here!"
34 except:
35 return "Booooo, only ghosts here!" # ако нещо некъде е хвърлило грешка, примерно AttributeError
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
02.11.2024 20:59
02.11.2024 20:57
02.11.2024 21:01