الدالة urllib.parse.quote()
في بايثون
تستبدل الدالة الحروف الخاصة في السلسلة النصية المعطاة باستخدام علامة التهريب %xx.
البنية العامة
urllib.parse.quote(string, safe='/', encoding=None, errors=None)
المعاملات
safe
يحدّد هذا المعامل محارف ASCII الإضافية التي يجب على الدالة أن لا تحيطها بعلامات اقتباس. يحمل هذا المعامل القيمة الافتراضية '/'.
string
يمكن أن يكون سلسلة نصية أو كائن bytes.
ملاحظة: اعتُمد المعيار RFC 3986 عوضًا عن المعيار RFC 2396 لاقتباس سلاسل URL النصية في الإصدار 3.7 من بايثون، وقد أضيف الرمز "~" إلى مجموعة المحارف المحجوزة.
encoding و errors
يحدّد هذان المعاملان طريقة تعامل الدالة مع الحروف الخارجة عن الترميز ASCII، وكما هو مقبول في التابع str.encode(). يأخذ المعامل encoding القيمة الافتراضية 'utf-8'، أما المعامل errors فيأخذ القيمة الافتراضية 'strict' والتي تعني أنّ الحروف غير المدعومة ستتسبب في إطلاق الاستثناء UnicodeEncodeError. يجب عدم إعطاء قيمة للمعاملين encoding و errors إن كان السلسلة النصية المعطاة من نوع bytes وإلا فإنّ الدالة ستُطلق الاستثناء TypeError.
يجدر التنبيه إلى أنّ الدالة quote(string, safe, encoding, errors) مكافئة للدالة quote_from_bytes(string.encode(encoding, errors), safe).
أمثلة
يبين المثال التالي طريقة عمل الدالة:
>>> import urllib.parse
>>> urllib.parse.quote('/El Niño/')
'/El%20Ni%C3%B1o/'