-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
base: master
Are you sure you want to change the base?
Solution #1612
Conversation
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.
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 = {} |
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.
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 |
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.
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"]] |
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.
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"]] |
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.
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.
No description provided.