File tree 1 file changed +6
-3
lines changed
1 file changed +6
-3
lines changed Original file line number Diff line number Diff line change 7
7
Enables selecting an algorithm at runtime.
8
8
"""
9
9
10
+
10
11
from __future__ import annotations
11
12
12
13
from typing import Callable , Type
13
14
14
15
15
16
class DiscountStrategyValidator : # Descriptor class for check perform
16
- def validate (self , obj : Order , value : Callable ) -> bool :
17
+ @staticmethod
18
+ def validate (obj : Order , value : Callable ) -> bool :
17
19
try :
18
20
if obj .price - value (obj ) < 0 :
19
21
raise ValueError (f"Discount cannot be applied due to negative price resulting. { value .__name__ } " )
20
- return True
21
22
except ValueError as ex :
22
23
print (str (ex ))
23
24
return False
25
+ else :
26
+ return True
24
27
25
28
def __set_name__ (self , owner , name : str ) -> None :
26
- self .private_name = '_' + name
29
+ self .private_name = f"_ { name } "
27
30
28
31
def __set__ (self , obj : Order , value : Callable = None ) -> None :
29
32
if value and self .validate (obj , value ):
You can’t perform that action at this time.
0 commit comments