تقنية

genops في بايثون: هل ظهور GLOBAL يستورد الوحدة؟

تعليمة ووسيط نصي
أسماء مؤلفة. [1] [2]

نفحص أسماء مؤلفة داخل بايتات. [1] [2]

الخلاصة السريعة

لا؛ الوصف هنا ليس استيرادًا للاسم. [1] [2]

  • مدخلنا GLOBAL ثم STOP. [1] [2]
  • الأسماء المؤلفة own_mod وown_func. [1] [2]
  • يعرض genops التعليمات ووسائطها. [1] [2]
  • وسيط الأولى own_mod own_func؛ الثانية None. [1] [2]
  • فك النص لا يثبت وجود الوحدة أو الرمز. [1] [2]
  • اختبرنا 3.12.14 بأسماء ASCII دون loads؛ ليس فحص أمان. [1] [2]

المثال

import pickletools as p
v=b'cown_mod\nown_func\n.'
print([(o.name,a) for o,a,_ in p.genops(v)])

[1] [2]

الناتج يصف GLOBAL بوسيطه النصي وSTOP دون وسيط. [1] [2]

الوصف والبحث

الوصف يجمع اسمي المدخل في نص، ولا يبحث عن الكائن المسمى. [1] [2]

وصف دون استيراد الاسم
لا بحث عن الكائن. [1] [2]

استوردنا pickletools للتحليل، ولم نستورد own_mod أو نحمل الكائن. لا تخلط اسم التعليمات مع تنفيذها. [1] [2]

الحدود

بايتاتنا مؤلفة بأسماء ASCII. لم نستدعِ loads؛ نجاح وصفها ليس شهادة أمان لتحميل بيانات أخرى. [1] [2]

المراجع

  1. Python: pickletools
  2. CPython 3.12.14: pickletools.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.