Skip to content

Instantly share code, notes, and snippets.

@juanjux
Created February 16, 2018 09:34
Show Gist options
  • Save juanjux/fafe404cf7bc340e1233908a8cb36217 to your computer and use it in GitHub Desktop.
Save juanjux/fafe404cf7bc340e1233908a8cb36217 to your computer and use it in GitHub Desktop.
Python 3.7 data classes
# Old
class MyClass:
def __init__(self, member_init1: int, member_init2: int, member_init3: int):
self.member1 = member_init1
self.member2 = member_init2
self.member3 = member_init3
print('MyClass initialized')
def __str__(self):
print('member1: ', self.member1, ' member2: ', self.member2, ' member3: ', self.member3)
def __eq__(self, other):
return self.member1 == other.member1 and self.member2 == other.member2 \
and self.member3 == other.member3
# New
@dataclass
class MyDataClass:
# __init__, __str__, __repr__ and __eq__ auto implemented
# These are not static!
member1: int
member2: int
member3: int
def __post_init__(self):
print('MyDataClass initialized')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment