تعریف ارسال پویا
انتخاب نسخهٔ واقعیِ متد در زمان اجرا بر اساس نوع شیء، نه نوعِ اعلامشدهٔ متغیر.
def morning_call(animals):
for a in animals:
print(a.speak()) # هر شیء نسخهٔ خودش را اجرا میکند
قدرت چندریختی در «بازبودن برای توسعه، بستهبودن برای تغییر» است: نوع تازه اضافه میکنی بدون اینکه morning_call را دست بزنی. در پایتون حتی والد مشترک لازم نیست — اگر speak داشته باشد، کار میکند (تایپایمنی اردکی: «اگر مثل اردک راه میرود و صدا میدهد، اردک است»).