اذهب إلى المحتوى

Adam Ebrahim

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

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

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

كل منشورات العضو Adam Ebrahim

  1. أقوم بالتعلم حول تعدد المهام في بايثون وبدأت بمكتبة threading، وأصبح يمكنني أن أقوم بعمل أكثر من thread ولكن لا أعرف كيف أقوم بإيقاف thread معين. وهل يجب أن أقوم التاأكد مما إذا كان الـ thread يقوم بعمل أمر حيوي مثل إستخدام critical resource. كيف أقوم بإنهاء thread قيد التشغيل بطريقة آمنة؟
  2. لدي مشكلة في صنف Class في بايثون، الصنف بسيط للغاية، وهو كالتالي: class MyClass: lst = [] student = MyClass() teacher = MyClass() student.lst.append(1) student.lst.append(2) teacher.lst.append(3) teacher.lst.append(4) print(student.lst) # Output: [1, 2, 3, 4] print(teacher.lst) # Output: [1, 2, 3, 4] لماذا يتم طباعة نفس النتيجة؟ أو بالأحرى لماذا يحتوي المتغير lst على جميع القيم [1, 2, 3, 4]؟ أليس من المفترض أن يحتوي على رقمين فقط [1, 2] في الكائن student و [3, 4] في الكائن teacher؟
  3. لدي سكريبت بسيط للغاية requests.py ويحتوي على التالي: import requests res = requests.get('http://www.google.com.eg') print(res) عند تشغيل الملف يظهر لدي الخطأ التالي: Traceback (most recent call last): File ".\requests.py", line 1, in <module> import requests File "C:\Users\Adam\OneDrive\Desktop\requests.py", line 3, in <module> res = requests.get('http://www.google.ca') AttributeError: partially initialized module 'requests' has no attribute 'get' (most likely due to a circular import) جربت أن أعيد تثبيت المكتبة أكثر من مرة ولكن مازالت تظهر نفس المشكلة، ثم قمت بتغير سطر إستدعاء المكتبة ليكون كالتالي: from requests import get res = get('http://www.google.com.eg') print(res) فظهر لي خطأ مختلف كالتالي: Traceback (most recent call last): File ".\requests.py", line 1, in <module> from requests import get File "C:\Users\Adam\OneDrive\Desktop\requests.py", line 1, in <module> from requests import get ImportError: cannot import name 'get' from partially initialized module 'requests' (most likely due to a circular import) (C:\Users\Adam\OneDrive\Desktop\requests.py) ما سبب هذا الخطأ؟ هل هناك مشكلة في إصدار بايثون 3.8 لدي؟
  4. لدي سؤال حول المعامل is والذي يستخدم للتأكد من قيمة ونوع قيمتين حيث أن المقارنة بين متغيرين لهما نفس القيمة الرقمية (أقل من أو يساوي 256) يعطي True بينما المفارنة بين قيمتين أكبر من 256 يعطي False كالتالي: x = 5 y = 5 print(x is y) # Output: True x = 300 y = 300 print(x is y) # Output: False أنا أستخدم بايثون 3.8 ، لا أعلم سبب هذه المشكلة لكنها قد تسبب أخطاء غير متوقعة في تنفيذ البرامج لدي، وكيف أقوم بالمقارنة بين قيمتين من نفس النوع إن لم أستخدم المعامل is؟
  5. ما هو الغرض من كلمة self في بايثون؟ أفهم أنه يشير إلى الكائن المحدد الذي تم إنشاؤه من هذا الصنف Class، لكن لا يمكنني معرفة سبب الحاجة إلى إضافته صراحة إلى كل وظيفة method كمدخل. class MyClass: def myMethod(self, name): self.name = name لمذا لا نقوم بكتابة الصنف السابق بالكشل التالي: class MyClass: def myMethod(name): self.name = name
  6. لدي قائمة list تحتوي على عدد كبير من القوائم بداخلها وكل قائمة داخلية تحتوي بدورها على قوائم أخرى كالتالي على سبيل المثال: [ [ [1,2,3], 4, 5 ], [ None, [7,8,9], [‘hi’,11,True] ], [1,2,3] ] المشكلة أن هذه القوائم متداخلة بطريقة عشوائية، كيف أقوم بطباعة كل العناصر في هذه القوائم لتكون النتيجة كالتالي: 1,2,3,4,5,None,7,8,9,’hi’,11,True,1,2,3
  7. قمت بعمل قائمة كالتالي: Arr = [1, 2, 3] ثم قمت بعمل قائمة جديدة من خلال إسناد الأولى إلى الثانية كالتالي: newList = Arr لكن المشكلة هي أنه عندما أقوم بتعديل القائمة الجديدة أجد أن القائمة القديمة تغيرت أيضًا newList[0] = True print(Arr) # [True, 2, 3] كيف أقوم بتعديل القائمة الجديدة بدون تغيير القائمة القديمة؟
  8. أريد أن أقوم بتعديل متغير عام global من داخل دالة لكني أحصل على الخطأ التالي: x = 5 def printX(): x = 6 print(x) # 6 printX() # المشكلة هنا يتم طباعة 5 print(x) # 5 لكن كما هو ظاهر أن الكود لا يقوم بتعديل المتغير x ولكن يقوم بعمل متغير آخر داخل الدالة local variable ، كيف أقوم بتعديل هذا المتغير من داخل الدالة لتكون نتيجة الطباعة تساوي 6 في كلتا الحالتين؟
  9. قمت بعمل مجموعة من القوائم بهذه الطريقة: Arr = [[0] * 5] * 3 وحصلت على النتيجة المرغوبة وهي: [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] لكن عندما أردت أن أغير أول عنصر فقط كالتالي: Arr[0][0] = 1 وجدت أن كل أول عنصر في كل قائمة أصبح يساوي 1 [[1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0]] لم أفهم لماذا حدث هذا الأمر؟ ولا كيفية تعديل أول عنصر فقط؟
  10. إن كان لدي مجموعة من المتغيرات كالتالي: x = 1 y = 2 z = 0 أريد أن يتم تنفيذ شرط عندما تكون قيمة أحد هذه المتغيرات تساوي صفر (أحدها وليس جميعها)، أعلم أنه من الممكن عمل هذا الأمر كالتالي: If x==0 or y == 0 or z == 0: print('hello, world') لكن لدي الكثير من المتغيرات ولا أريد أن أكرر الكود، هل توجد طريقة لعمل هذا الأمر بطريقة مختصرة؟
  11. لدي نص كالتالي: a = 'spam' كلمة spam هنا متغير وقد تكون أي كلمة أخرى وأريد أن أقوم بعمل متغير باسم spam وإعطائه قيمة None أي كالتالي: print(spam) # None أعلم أنه الأمر ممكن في لغات أخرى مثل PHP $a = 'spam'; $$a = 123; echo $spam; // 123 كيف أقوم بمثل هذا الأمر في بايثون؟
  12. عندما أقوم بعمل عنصر input من نوع checkbox في مكون React ووضع قيمة إفتراضية له كالتالي لا يمكنني أن أقوم بتغير هذه القيمة من خلال الضغط على العنصر: <input type="checkbox" checked="checked" /> حاولت أن أستخدم التابع createElement كما في الكود التالي لكن لم ينجح الأمر أيضًا: React.createElement('input', { type: 'checkbox', checked: 'checked' }, 'Check here');
  13. أريد أن يتم تنفيذ دالة معينة إن قام المستخدم بالضغط على أحد الرابط وإنتقالة إلى صفحة أخرى في الموقع، أي عمل شيء يشبه حدث onUrlChange من خلال كود كالتالي: reactRouter.onUrlChange(url => { console.log('URL Changed: ', url) }); هل يمكن تنفيذ شيء كهذا في React؟ أستخدم React-router
  14. قمت بإنشاء مشروع React جديد من خلال الأمر: npx create-react-app projectName وتم تثبيت node-sass v5.0.0 لإضافة ميزة التعامل مع ملفات sass ولكن عندما قمت بإستدعاء ملف SCSS فارغ ظهر لي الخطأ التالي: Failed to compile. ./src/App.scss (./node_modules/css-loader/dist/cjs.js??ref--5-oneOf-6-1!./node_modules/postcss-loader/src??postcss!./node_modules/resolve-url-loader??ref--5-oneOf-6-3!./node_modules/s ass-loader/dist/cjs.js??ref--5-oneOf-6-4!./src/App.scss) Error: Node Sass version 5.0.0 is incompatible with ^4.0.0. وهذا ملف package.json الذي لدي: { "dependencies": { "node-sass": "^5.0.0", "react": "^17.0.1", "react-dom": "^17.0.1", "react-scripts": "4.0.0" ... }, }
  15. لقد قمت بإنشاء مكون React ومن المفترض أن يقوم بتحديث التنسيقات الخاصة به عند تمرير الصفحة. كود المكون كالتالي: let componentStyle = { backgroundColor: 'white' }; window.addEventListener('scroll', (event) => { componentStyle.backgroundColor = 'black'); }); return ( <div style={componentStyle}></div> ); لكن هذا الكود لا يعمل على الإطلاق، وأعتقد أن السبب هو أن React لا يعلم أن المتغير componentStyle قد تغير وبالتالي لا يتم عمل render للمكون مرة أخرى، وبالطبع حاولت أن أخزن هذه القيمة في state وتعديلها من خلال setState ولكن هذا الأمر يجعل عملية التمرير إلى الأسفل بطيئة للغاية، هل يوجد حل آخر غير هذا الأمر؟
  16. لدي الكود التالي لعمل طلب GET إلى الخادم وإحضار بعض البيانات: export function fetchUsers() { const request = axios.get(`${SERVER_URL}`); return { type: FETCH_POSTS, payload: request } } كيف أقوم بإختبار دالة get الموجودة في مكتبة Axios، أعلم أن Jest يمكنه أن يختبر كود من نوع asynchronous من خلال إستخدام دالة وهمية mock function، ووصلت إلى هذا الرابط في التوثيق الرسمي الخاص بـ jest ، لكن لا أعلم كيف أقوم بتطبيق نفس الأمر على مكتبة axios
  17. أقوم بالعمل على مشروع React وحاليًا على ملفات الـ testing، ولدي مكون يحتوي على رقم counter و زر لزيادة هذا الرقم، وأريد أن أعرف كيف أقوم بإختبار محاولة الضغط على هذا الزر لكي أتأكد من أن الزر يقوم بالمطلوب منه بشكل سليم (زيادة الرقم بمقدار 1). أستخدم React 17 و jest أحدث نسخة
  18. أحاول أن أقوم بعمل مدونة وأريد أن يتم تحويل المستخدم من الصفحة الرئيسية / إلى صفحة /posts وهذه الأخيرة يتم توليدها من قِبل gatsby-node.js، حاولت أن أستخدم المكون Redirect من حزمة @reach-router في مكون Index لكي يتم تحويل المستخدمين تلقائيًا لكن أصبح يظهر لدي خطأ Uncaught RedirectRequest هذا هو الكود الخاص بالصفحة الرئيسية / : import React from 'react' import { Redirect } from '@reach/router' class Index extends React.Component { render() { return ( <Redirect to={`/posts`} /> ) } } export default Index
  19. هل من الممكن تعطيل التوجيه من جانب العميل في Gatsby؟ أنا أستخدم Gatsby لإنشاء موقع ثابت يحتوي على صفحة واحدة فقط وسيتم وضعه على سيرفر تخزين. أواجه مشكلة بسبب Gatsby حيث يتم إزالة index.html من عنوان URL بعد أن يتم تحميل الصفحة. لا تحدث هذه المشكلة إذا قمت بتعطيل JavaScript، لذلك أنا متأكد تمامًا من أنها بسبب استخدام Gatsby لـ Reach Router. هل هناك طريقة لتعطيل هذا السلوك؟ أعتقد أنه يجب أن استخدم الكائن window ولكن لا أعرف كيف أقوم بالأمر أو من أين أبدأ.
  20. في الوثائق الرسمية الخاصة بـ Gatsby عرضوا أن يمكن أن أستخدم الصور من خلال CSS بالطريقة العادية كما يحدث في أي مكون React عادي ولكن قمت بتتجربة الكود التالي: .brande { background-image: url(./logo.png); } ولكن أحصل على الخطأ التالي: Loader /Users/username/Sites/my-app/node_modules/url/url.js?{"limit":10000,"name":"static/[name].[hash:8].[ext]"} didn't return a function @ ./~/css-loader!./~/postcss-loader!./src/layouts/index.css 6:400-435 حاولت تغير مكان الصور ليكون في مجلد src وفي مجلد المشروع نفسه root لكن يظهر نفس الخطأ في كل مرة
  21. أود أن أنشر موقعي Static وجعله يحتوي على أكثر من لغة (العربية والإنجليزية والإيطالية .. إلخ)، لكن لا أعرف كيف يتمن الأمر في الموقع من نوع static generated، هل يتم عمل نسخة من كل صفحة بكل لغة أم يتم تعديل الـ routes لعرض لغة معينة، أعلم أن هناك حزم مثل i18next لـ next.js لكن كيف أقوم بنفس الأمر بإستخدام Gatsby؟ مع العلم أني لا أريد أن أقوم بإعادة كتابة الكود في أكثر من ملف ليكون هناك نسخة لكل لغة pages/en/index.js و pages/ar/index.js .. إلخ
  22. أريد أن أقوم بعمل route يحمل متغير خاص كالتالي: /users/<userID> في react router نقوم في العادة بإستخدام طريقة النقطتين كالتالي: <Route exact path='/users/:userid' component={user} /> قمت بالإطلاع على موقع Gatsby الرسمي للقراءة حول Client only routes لكن لم أفهم كيف أقوم بعمل متغير يقبل أي قيمة بدون إعداد صفحة مخصصة لكل مستخدم يدويًا
  23. مرحبًا، أحاول أن أضيف بعض أكواد jquery ولكن لا أستطيع فعل ذلك في Gatsby أو بالأحرى يمكنني أن أضع الأكواد في ملف html.js ولكن يتم تنفيذ هذه الأكود قبل أن يتم عرض مكونات React (يتم عمل render لها)، قمت أيضًا بمحاولة إستخدام الخطاف componentDidMount في ملف html.js ولكن الأمر لم ينجح معي هنا محتوى ملف html.js: import React from "react" import PropTypes from "prop-types" export default class HTML extends React.Component { componentDidMount() { console.log('Hello, World!'); } render() { return ( <html {...this.props.htmlAttributes}> <head> {this.props.headComponents} </head> <body> {this.props.preBodyComponents} <div key={`body`} id="___gatsby" dangerouslySetInnerHTML={{ __html: this.props.body }} /> {this.props.postBodyComponents} </body> </html> ) } } HTML.propTypes = { htmlAttributes: PropTypes.object, headComponents: PropTypes.array, bodyAttributes: PropTypes.object, preBodyComponents: PropTypes.array, body: PropTypes.string, postBodyComponents: PropTypes.array, } كما هو ظاهر قمت بطباعة جملة 'Hello, World!' من خلال الخطاف componentDidMount لكن لم يحدث شيء!
  24. يقوم موقع أدسنس بإعطائي كود في شكل سكريبت <script> (adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-number", enable_page_level_ads: true }); </script> كيف أقوم بإدراج هذا الكود في موقع Static مبني بإستخدام React و Gatsby ، يقوم الموقع أن أضع الكود في العنصر head ولكن في Gatsby لا يوجد غير Helmet فقط. كما أني حاولت أن أستعمل حزمة react-adsense ولكن لم أعرف كيف أستخدمها مع Gatsby.
  25. أقوم حاليًا بإنشاء مشروع بإستخدام React و Gatsby وأود تغير المحتوى بناءً على عنوان url الحالي، في السابق كان يمكنني أن أستعمل الكود التالي لمعرفة مسار الصفحة الحالية: currentPath = this.props.location.pathname لكن بداية من Gatsby v2 لم يعد هذا الأمر متاحًا حيث أصبح يتم أستعمال @reach/router كيف أعرف المسار الحالي بإستخدام @reach/router
×
×
  • أضف...