Adam Ebrahim

الأعضاء
  • المساهمات

    163
  • تاريخ الانضمام

  • تاريخ آخر زيارة

السُّمعة بالموقع

83 Excellent
  1. أقوم بتطوير برنامج في Python سيتم بيعه إلى بعض العملاء. وأريد أن أقوم بجعل البرنامج مغلق المصدر ولا يمكن لأحد الوصول إلى الكود المصدري للبرنامج، أعلم أنه يمكن تشغيل برامج بايثون بصيغة pyc لكن أعتقد أنه من السهل تحويل كود pyc إلى كود بايثون عادي. هل هناك طريقة جيدة للتعامل مع هذه المشكلة؟
  2. أريد أن أقوم بتعديل قيمة خاصية في صنف class من خلال نص باسم الخاصية، كالتالي: class Foo: def __init__(self): self.attr1 = True self.attr2 = False foo = Foo() x = "attr1" y = 123 كيف أقوم بتعديل الخاصية المخزنة في المتغير x بقيمة المتغير y؟
  3. أحاول التطبيق على OOP ولكن عند إستخدام المعامل += يحدث أمر غير متوقع، في الكود التالي يوجد صنفين foo و foo2 وعند عمل كائن من كل صنف وإضافة قيمة إلى القائمة bar يتم إضافتها أيضًا إلى الكائن الآخر!! >>> class foo: ... bar = [] ... def __init__(self,x): ... self.bar += [x] ... >>> class foo2: ... bar = [] ... def __init__(self,x): ... self.bar = self.bar + [x] ... >>> f = foo(1) >>> g = foo(2) >>> f.bar [1, 2] >>> g.bar [1, 2] >>> f.bar += [3] >>> f.bar [1, 2, 3] >>> g.bar [1, 2, 3] لماذا أصبح الكائن g يحتوي على نفس القائمة أيضًا؟ هذه المشكلة لا تحدث إن قمت بإستخدام الطريقة العادية كالتالي: >>> f.bar = f.bar + [4] >>> f.bar [1, 2, 3, 4] >>> g.bar [1, 2, 3] >>> ما الفرق بين الطريقة الأولى والثانية؟
  4. هل تدعم بايثون لتعبيرات الشروط المختصرة short if ؟ في لغات مثل JavaScript يمكنني فعل الآتي: condition ? exprIfTrue : exprIfFalse أريد أن أقوم بتطبيق جمل شرطية مختصرة في بايثون كذلك الأمر بالنسبة إلى الحلقات المختصرة
  5. لدي قائمتين بالشكل التالي: lst1 = ['One', 'Two', 'Three', 'Four'] lst2 = ['One', 'Two'] كيف أحصل على العناصر الموجودة في القائمة الأولى وغير الموجودة في القائمة الثانية، لتكون النتيجة في النهاية: result = ['Three', 'Four']
  6. لدي ملف log تتم كتابته بواسطة عملية أخرى وأريد أن أتابع التغييرات. في كل مرة يحدث تغيير، أود قراءة البيانات الجديدة لإجراء بعض المعالجة عليها. بدلًا من قراءة الملف كاملًا، حيث أن حجم الملف يزداد مع الوقت وتستغرق عملية قراءة الملف وقت أطول كل مرة. كيف أقوم بمعرفة التغيرات التي تحدث على الملف فقط (يتم إضافة أسطر جديدة إلى الملف كل بضع ثواني)؟
  7. هل يمكن أن أستخدم التابع replace لإزالة أو ‘ستبدال أجزاء متعددة من النص، أعلم أنه يمكنني أن أستخدم replace أكثر من مرة كالتالي: x = "hello, world" x = x.replace("hello", "hi") x = x.replace("world", "adam") print(x) # hi, adam هل توجد طريقة مختصرة أكثر بدلًا من تكرار replace العديد من المرات؟
  8. عندما أقوم بإنشاء نص يحتوي على خطوط مائلة backslashes يتم تكرارها كالتالي: >>> x = "hello, \world" >>> x 'hello, \\world' >>> لماذا تم إضافة هذه العلامة الإضافية وكيف أقوم إزالتها؟
  9. لدي ملفات قمت بكتابته من خلال سحب البيانات من الإنترنت web scraping وحجمه 1GB، كيف أقوم بقراءة هذا الملف جزء بجزء بطريقة chunk؟ هل يمكن إستخدام lazy method للقيام بهذا الأمر؟
  10. لدي قاموس بالشكل التالي: {'Adam': 18, 'Ebrahim' : 19} كيف أحصل على كلمة Adam من خلال البحث عن القيمة 18 بفرض أن القيم Values يمكن أن تتكرر، أي يصبح لأكثر من مفتاح نفس القيمة.
  11. من فترة تعلمت كيف أقوم بعمل staticmethod في صنف بايثون، والآن وجد كود يحتوي على @classmethod قبل تعريف دالة في الصنف بنفس طريقة إستعمال staticmethod@ ولم أفهم ما الذي يفعله هذا الأمر. لذلك أريد أن أعرف ما الفرق بين staticmethod و classmethod في أصناف بايثون؟
  12. لدي نص كالتالي: x= """Bound methods have been "bound" (how descriptive) to an instance, what about that?!""" كيف أقوم باستخراج الكلمات فقط بدون باقي علامات التنصيص والاستفهام وغيرها من رومز؟ حاولت أن استخدم التابع replace لحذف هذه العلامات، لكن أخشى أن يقوم المستخدم بإدخال رموز مختلفة أو رموز Emoji، وبالتالي سيكون من المستحيل إزالة كل الرموز الغريبة من النص قبل تقسيمه لكلمات باستخدام التابع split. هل توجد طريقة سريعة لإستخراج الكلمات فقط من النص؟
  13. في الوقت الحالي أنا أتعلم كيفية استخدام الـ threading و multiprocessing في بايثون لتشغيل عمليات معينة بالتوازي وتسريع الكود الخاص بي. لكن لدي مشكلة في معرفة الفرق بين هذه المكتبات، ما الفرق بين الكائنين التاليين؟ threading.Thread() multiprocessing.Process() متى أستعمل كلًا من مكتبة threading أو multiprocessing؟
  14. لدي ملف يحتوي على جمل وفي هذه الجمل يوجد أرقام كثيرة، كيف يمكنني إستخراج الأرقام من هذه النصوص؟ على سبيل المثال لدي المتغير التالي: x = "Hello, World! 0 Started 99, I'm 20 years" كيف أحصل على النتيجة التالية: [0, 99, 20] حاولت أن أقوم بالمرور على كل حرف في النص ولكن بهذه الطريقة سوف أحصل على كل الأرقام في شكل نص واحد فقط، وأنا أريد قائمة من الأرقام كما في المثال السابق.
  15. أريد أن أقوم باستدعاء ملف بايثون والذي يقوم بطباعة جملة معينة عند استدعائه، لكن المشكلة أنه بمجرد استدعائه مرة واحد لا يتم تنفيذ الكود في المرات التالية: for i in range(5): import myScript # يتم تنفيذه مرة واحدة فقط print('imported')