افصل التعديل عن إسناد القيمة للمخزن. [1] [2]
الخلاصة السريعة
مع writeback=False الافتراضي، تعديل القائمة المقروءة لا يحدّث قيمة shelve تلقائيًا. [1] [2]
المثال
import shelve as s,tempfile as t with t.TemporaryDirectory() as d: with s.open(d+'/x') as db: db['a']=[4] x=db['a'];x.append(9) print(x,db['a']) db['a']=x print(db['a'])
المخرجات: [4, 9] [4] ثم [4, 9]. [1] [2]
متى يتغير المخزن؟
القراءة تعيد كائنًا. تعديل x لا يكتب القيمة؛ الإسناد يسلسلها للمخزن. [1] [2]
بعد الإسناد نقرأ القائمة المعدلة؛ استخدمنا with لإغلاق المخزن. [1] [2]

حدود التجربة
الملف مؤقت للاختبار؛ لم نختبر دوام البيانات عند الانقطاع. [1] [2]
المراجع
- Python: shelve
- CPython 3.12.14: shelve.py
- موضوع تك: لغة بايثون — مفردات
- موضوع تك: تطبيقات بايثون — مفردات
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
