Διάβασε τον κώδικα προσεκτικά
from typing import Self
class Query:
def __init__(self) -> None:
self.table: str = ""
self.filters: list[str] = []
self.limit_: int | None = None
def from_(self, table: str) -> Self:
self.table = table
return self
def where(self, cond: str) -> Self:
self.filters.append(cond)
return self
def limit(self, n: int) -> Self:
self.limit_ = n
return self
def build(self) -> str:
clauses = [f"SELECT * FROM {self.table}"]
if self.filters:
clauses.append("WHERE " + " AND ".join(self.filters))
if self.limit_:
clauses.append(f"LIMIT {self.limit_}")
return " ".join(clauses)
class TimedQuery(Query):
def slow(self, ms: int) -> Self:
self.filters.append(f"duration_ms > {ms}")
return self
q = (
Query()
.from_("users")
.where("active = true")
.where('created_at > "2026-01-01"')
.limit(10)
)
print(q.build())
print(type(q).__name__)
t = (
TimedQuery()
.from_("requests")
.slow(500)
.where('path = "/api"')
.limit(20)
)
print(t.build())
print(type(t).__name__)
Τι θα εμφανίσει το πρόγραμμα; Γράψε εδώ: