Skip to content
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 #1612

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Solution #1612

wants to merge 1 commit into from

Conversation

TretiakHelen
Copy link

No description provided.

Copy link

@mateacademy-ai-mentor mateacademy-ai-mentor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job on implementing the Person class and the create_person_list function! 🎉 Your code meets most of the task requirements and constraints. While there are a few areas for improvement, such as handling potential KeyError exceptions and ensuring unique names in the people dictionary, these are minor issues that don't critically impact the functionality. Keep up the good work, and consider these suggestions for future enhancements! 😊

✨ Please rate this review in the Platform's notification center. I will be grateful for your feedback! ✨

@@ -1,8 +1,21 @@
class Person:
# write your code here
pass
people = {}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The people dictionary is a class variable, which means it is shared across all instances of the Person class. This could lead to unexpected behavior if multiple instances are created with the same name, as they will overwrite each other in the dictionary.

def __init__(self, name: str, age: int) -> None:
self.name = name
self.age = age
Person.people[self.name] = self

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Storing the Person instance in the people dictionary using the name as the key assumes that all names are unique. If there are duplicate names, this will cause the previous entry to be overwritten.

for person in people:
select_person = Person.people[person["name"]]
if "wife" in person and person["wife"]:
select_person.wife = Person.people[person["wife"]]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code assumes that the 'wife' is already created and exists in the Person.people dictionary. If the 'wife' is not created before this line is executed, it will raise a KeyError. Consider adding a check to ensure the referenced person exists.

if "wife" in person and person["wife"]:
select_person.wife = Person.people[person["wife"]]
elif "husband" in person and person["husband"]:
select_person.husband = Person.people[person["husband"]]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar to the previous comment, this line assumes that the 'husband' is already created and exists in the Person.people dictionary. A KeyError will be raised if the 'husband' is not present. Consider adding a check to handle this case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants