The before code shows two unrelated classes without any connection. The after code models a one-to-many relationship where a Person can have multiple Addresses, reflecting the class diagram structure.
### Before: No clear structure or relationships
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
class Address:
def __init__(self, street, city):
self.street = street
self.city = city
# No link between Person and Address
### After: Clear class design with relationships
class Address:
def __init__(self, street: str, city: str):
self.street = street
self.city = city
def full_addr(self) -> str:
return f"{self.street}, {self.city}"
class Person:
def __init__(self, name: str, age: int):
self.name = name
self.age = age
self.addresses: list[Address] = []
def add_address(self, address: Address) -> None:
self.addresses.append(address)
def greet(self) -> str:
return f"Hello, my name is {self.name}."