-
-
Notifications
You must be signed in to change notification settings - Fork 42
London | 25-SDC-Nov | Zohreh Kazemianpour | Sprint 5 | Prep Exercises #305
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
base: main
Are you sure you want to change the base?
London | 25-SDC-Nov | Zohreh Kazemianpour | Sprint 5 | Prep Exercises #305
Conversation
LonMcGregor
left a comment
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.
Very good work on these tasks, there are some areas where you could improve further
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.
Can you describe the difference and any dis/advantage of using a class method vs a function?
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 the prep section, we learned that class methods provide benefits such as encapsulation and improved code organisation compared to free functions. However, overusing class methods can unnecessarily complicate the code. As a rule of thumb, methods should be used when modellingobjects with related state and behavior, while simple, stateless tasks are better implemented as standalone functions.
| self.preferred_operating_system = preferred_operating_system | ||
|
|
||
| def is_adult(self) -> bool: | ||
| today_date = date.today().year |
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.
Be careful about the formatting and indentation here
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.
I removed the extra lines and kept only one line
exercises-sprint5/generics.py
Outdated
| def print_family_tree(person: Person) -> None: | ||
| print(person.name) | ||
| for child in person.children: | ||
| print(f"- {child.name} ({child.age})") |
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.
Can this print grandchildren recursively?
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.
Sure, at the moment, the function only prints one level. I’ve updated the implementation to print grandchildren recursively as well.
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.
To improve the user experience, you might want to do some validation on the input and ask for reentry if it is invalid. You might also want to give some options when asking for an OS
Thanks for the review and the positive feedback! Apologies for the delay in getting back to you. We've had a really busy few weeks focusing on the backend and prepping for our Codility tests. I’m going through your suggestions now and will implement the improvements across the tasks. |
Learners, PR Template
Self checklist
Changelist
This PR contains the Sprint 5 preparation exercise.
As I was not previously familiar with Python, it took me some time to get comfortable with the new concepts and syntax. I added as many comments as possible for educational purposes, as I plan to use this code later as a reference.
Questions
I would really appreciate any feedback on my implementation and suggestions on how I can improve my code quality.