-
Notifications
You must be signed in to change notification settings - Fork 620
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Solution #270
base: master
Are you sure you want to change the base?
Solution #270
Conversation
self.max_amount = max_amount | ||
|
||
def __get__(self, instance: object, owner: type) -> None: | ||
return instance.__dict__[self.name] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use getattr
if not self.min_amount <= value <= self.max_amount: | ||
raise ValueError(f"{self.name} must be between " | ||
f"{self.min_amount} and {self.max_amount}") | ||
instance.__dict__[self.name] = value |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use setattr
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
RecursionError: maximum recursion depth exceeded
Куча таких ошибок с setattr и getattr
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this case you need have two different names: public and protected
RecursionError: maximum recursion depth exceeded |
self.max_amount = max_amount | ||
|
||
def __get__(self, instance: object, owner: type) -> None: | ||
return instance.__dict__[self.name] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use getattr
if not self.min_amount <= value <= self.max_amount: | ||
raise ValueError(f"{self.name} must be between " | ||
f"{self.min_amount} and {self.max_amount}") | ||
instance.__dict__[self.name] = value |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this case you need have two different names: public and protected
instance.__dict__[self.name] = value | ||
|
||
def __set_name__(self, owner: type, name: str) -> None: | ||
self.name = name |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
self.name = name | |
self.name = f"_{name}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or just fix like this
age: IntegerRange = IntegerRange(0, 150) | ||
weight: IntegerRange = IntegerRange(0, 500) | ||
height: IntegerRange = IntegerRange(0, 300) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is redundant. Remove this lines
@abstractmethod | ||
def validate(self, visitor: Visitor) -> bool: | ||
pass |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This method is redundant
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove in all classes
|
||
|
||
class ChildrenSlideLimitationValidator(SlideLimitationValidator): | ||
pass | ||
def __init__(self) -> None: | ||
super().__init__(age=(4, 14), weight=(20, 50), height=(80, 120)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
age, weight, height must be class attribute as IntegerRange
|
||
|
||
class Slide: | ||
pass | ||
def __init__(self, name: str, limitation_class: type) -> None: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
type of what? Provide inner type
No description provided.