تقنية

toreadonly في بايثون: هل تجمّد البيانات؟

الكتابة عبر v مرفوضة، لكن تغيير b يظهر في العرض.
كتابة مرفوضة.

toreadonly تعيد عرضًا للقراءة فقط؛ لا تجمّد مخزن الأصل. [1]

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

لا؛ تمنع الكتابة عبر العرض، لكن تغيير الأصل قد يظهر فيه. [1]

  • toreadonly تعيد عرضًا للقراءة فقط؛ لا تجمّد مخزن الأصل. [1]
  • المنع يخص العرض؛ يمكن أن يتغير الأصل القابل للكتابة. [1]
  • مثال مؤلف على CPython 3.12.14: b=bytearray([5,11])؛ v=memoryview(b).toreadonly()؛ c=v.tobytes(). [1]
  • v[0]=8 تثير TypeError؛ b[0]=8 ينجح، فتظهر [8,11] في list(v). [1]
  • تحكم: بايتات c بقيت [5,11]؛ v.readonly بقيت True. [1]

عرض القراءة

toreadonly تعيد عرضًا للقراءة فقط؛ لا تجمّد مخزن الأصل. [1]

حد المنع

المنع يخص العرض؛ يمكن أن يتغير الأصل القابل للكتابة. [1]

عرض ونسخة

مثال مؤلف على CPython 3.12.14: b=bytearray([5,11])؛ v=memoryview(b).toreadonly()؛ c=v.tobytes(). [1]

v=memoryview(b).toreadonly(); c=v.tobytes() [1]

بعد تغيير b، يعرض v العددين 8 و11؛ تبقى بايتات c بالقيمتين 5 و11.
عرض ونسخة.

تغيير الأصل

v[0]=8 تثير TypeError؛ b[0]=8 ينجح، فتظهر [8,11] في list(v). [1]

b[0]=8; list(v) -> [8,11] [1]

تحكم: بايتات c بقيت [5,11]؛ v.readonly بقيت True. [1]

المراجع

  1. Python — memoryview.toreadonly

للتوسع: لغات البرمجة.

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