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

التسجيل والتحكم
بعد تسجيل bool ليعيد "bool": النداءان يعيدان "bool"؛ التسجيل الخاص يغير الاختيار. [1] [2]
@route.register(bool) def route_bool(value):return "bool" print(route(True),route(False),route(4),route("4")) [1] [2]
تحكم: route(4) تبقى "int" وroute("4") تبقى "base" قبل التسجيل وبعده. نختبر أنواعًا مدمجة، دون فئات مجردة أو وراثة مخصصة. [1] [2]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
