Back
Syntax
Study
Editor
Mode:
HTML
CSS
JavaScript
PHP
Reset
Run »
HTML / CSS / JS
from typing import Protocol, runtime_checkable @runtime_checkable class Summable(Protocol): def total(self) -> float: ... class Cart: def __init__(self, items): self.items = items def total(self): return sum(self.items) class Invoice: def __init__(self, lines): self.lines = lines def total(self): return sum(l["amount"] for l in self.lines) def print_total(s: Summable): print(f"Total: ${s.total():.2f}") print_total(Cart([9.99, 14.50, 3.25])) print_total(Invoice([{"amount": 50.0}, {"amount": 25.0}])) print(isinstance(Cart([]), Summable)) # True
Result
Open