singledispatch تختار التنفيذ بحسب نوع الوسيط الأول. [1]
الخلاصة السريعة
لا؛ النوع الأول يحدد الاختيار هنا. [1]
- singledispatch تختار التنفيذ بحسب نوع الوسيط الأول. [1]
- على CPython 3.12.14، الافتراضي يعيد base، ونسجل تنفيذًا لـint يعيد int. [1]
- route(2,"leaf") تعيد int؛ route("leaf",2) تعيد base؛ العدد في الموضع الثاني لا يختار تنفيذ int. [1]
- بعد تسجيل str: route("leaf",2) تعيد str؛ التسجيل يضيف تنفيذًا لنوع الوسيط الأول. [1]
- تحكم: route("leaf",8) تعيد str أيضًا، وroute(2,"leaf") تبقى int؛ غيرنا الثاني مع بقاء نوع الأول. [1]
قاعدة الاختيار
singledispatch تختار التنفيذ بحسب نوع الوسيط الأول. [1]
الافتراضي والتسجيل
على CPython 3.12.14، الافتراضي يعيد base، ونسجل تنفيذًا لـint يعيد int. [1]
تبديل الموضعين
route(2,"leaf") تعيد int؛ route("leaf",2) تعيد base؛ العدد في الموضع الثاني لا يختار تنفيذ int. [1]
from functools import singledispatch @singledispatch def route(first,second):return "base" @route.register(int) def route_int(first,second):return "int" print(route(2,"leaf"),route("leaf",2)) [1]

تسجيل النص والتحكم
بعد تسجيل str: route("leaf",2) تعيد str؛ التسجيل يضيف تنفيذًا لنوع الوسيط الأول. [1]
@route.register(str) def route_str(first,second):return "str" print(route("leaf",2),route("leaf",8),route(2,"leaf")) [1]
تحكم: route("leaf",8) تعيد str أيضًا، وroute(2,"leaf") تبقى int؛ غيرنا الثاني مع بقاء نوع الأول. [1]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
