# Using Python dataclasses for clean data structures
from dataclasses import dataclass, field
from typing import List
from datetime import datetime
@dataclass
class BlogPost:
title: str
content: str
author: str
tags: List[str] = field(default_factory=list)
created_at: datetime = field(default_factory=datetime.now)
published: bool = False
def word_count(self) -> int:
return len(self.content.split())
def summary(self, length: int = 100) -> str:
if len(self.content) <= length:
return self.content
return self.content[:length].rsplit(' ', 1)[0] + '...'
# Usage
post = BlogPost(
title="Hello World",
content="This is my first blog post about Python dataclasses.",
author="Jane Doe",
tags=["python", "tutorial"]
)
print(f"Title: {post.title}")
print(f"Words: {post.word_count()}")
print(f"Summary: {post.summary(30)}")