اذهب إلى المحتوى

السؤال

نشر

عندما كنت أقرأ بعض المقالات حول لغة بايثون وجدت أن المصطلح type hints يستعمل بكثرة بالرغم أنه لم يتم التطرق إلى معناه، كما تم ذكر أنه يجب استعماله بحرص.

هل يمكن لأحد أن يشرح لي ما هو type hints وما فائدته؟ وهل من الخطر إستعماله؟

Recommended Posts

  • 1
نشر

type hints هي طريقة لأعطاء البايثون دلالة للقيمة الراجعة أو حتى الأصناق على القيمة المحتملة التيى تقوم ببناءها و هي طرdقة جيدة لمساعدة ال type checkers للبايثون بحيث أنه بهذه الطريقة يقوم بمعرفة ماذا يجب أن تمرر أو أن ترجع و من هنا يستطيع ال type checkers  بسهولة أن يخمن إن كنت تقوم بإرسال صنف غير متوقع و مثال على هذا الموضوع التالي :

 def headline(text, align=True):
   if align:
       return f"{text.title()}\n{'-' * len(text)}"
   else:
       return f" {text.title()} ".center(50, "o")

 print(headline("python type checking"))


 print(headline("python type checking", align=False))

  
  #--------------- أضف الآن تلميحات الكتابة عن طريق التعليق على الوسيطات وقيمة الإرجاع على النحو التالي:
  
 def headline(text: str, align: bool = True) -> str:# هنا نقوم بتحديد الصنف للقيمة الراجعة لتسهيل عملية التحمين
    if align:
        return f"{text.title()}\n{'-' * len(text)}"
    else:
        return f" {text.title()} ".center(50, "o")



print(headline("python type checking", align="left"))

 print(headline("python type checking", align="center"))

 

  • 0
نشر

اذا قمت باستخدام javascript مسبقا فستعرف انه هناك شئ يطلق عليه typscript والذي يعطي قوة ال typed language ل javascript وذلك يوجد ايضا في python بحكم أن python مشابهة ل javascript فكلاهما ديناميكي حسنا لنرجع لtype hints ولنشرحها بمثال 

def ceaser(text, key):
    result = ""
    for char in text:
        c = ord(char)
        enc_char = chr(c + key)
        result += enc_char
    return result

فوق لدينا دالة تشفير ceaser وهي دالة مشهورة تاخذ string و number للتشفير وترجع string يمكننا تعريف اولا المعطيات بنوعها 

def ceaser(text:str, key:int):
    result = ""
    for char in text:
        c = ord(char)
        enc_char = chr(c + key)
        result += enc_char
    return result

يمكننا تعريف صنف نتيجة الدالة 

def ceaser(text, key) -> str :
    result = ""
    for char in text:
        c = ord(char)
        enc_char = chr(c + key)
        result += enc_char
    return result

كما يمكننا تعريف نوع المتغيرات


def ceaser(text, key) -> str :
    result:str = ""
    for char in text:
        c:int = ord(char)
        enc_char:str = chr(c + key)
        result += enc_char
    return result

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...