6. الوراثة (Inheritance):
الوراثة هي مفهوم يسمح للصفوف بالاستفادة من الصفوف الأخرى واستعادة السمات والأساليب منها. لنقم بإنشاء صف جديد يرث سمات وأساليب الصف Person:
```python
class Employee(Person):
def __init__(self, name, age, employee_id):
super().__init__(name, age)
self.employee_id = employee_id
```
في هذا المثال، يرث الصف Employee من الصف Person، ولكنه يضيف سمة إضافية "employee_id".
7. التعددية (Polymorphism):
التعددية تسمح للكائنات بتنفيذ السلوك المختلف بناءً على نوع الكائن الفعلي. لنستخدم مفهوم التعددية لتنفيذ أسلوب مشترك بطرق مختلفة لكائنين مختلفين:
```python
class Shape:
def calculate_area(self):
pass
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def calculate_area(self):
return self.width * self.height
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def calculate_area(self):
return 3.14 * self.radius**2
```
في هذا المثال، يتم تعريف الصف Shape الذي يحتوي على سلوك مشترك (الطريقة calculate_area). يتم تعريف صفين آخرين، Rectangle و Circle، يرثان من الصف Shape وينفذان السلوك بطرق مختلفة.
8. التجميع (Composition):
التجميع هو مفهوم يسمح للكائنات بالاعتماد على كائنات أخرى كأجزاء منها. لنقم بإنشاء صف يستخدم التجميع لربط كائنين:
```python
class Engine:
def start(self):
print("Engine started.")
class Car:
def __init__(self):
self.engine = Engine()
def start_engine(self):
self.engine.start()
```
في هذا المثال، يتم استخدام التجميع لربط كائن Car بكائن Engine. يمكن لكائن Car استدعاء أسلوب start() في كائن Engine لبدء المحرك.
9. التعامل مع الاستثناءات (Exception Handling):
يمكن استخدام البرمجة الموجهة نحو الكائنات للتعامل مع الأخطاء والاستثناءات بشكل منظم. لنستخدم مفهوم التعامل مع الاستثناءات في الكلاس التالي:
```python
class Calculator:
def divide(self, num1, num2):
try:
result = num1 / num2
print("Result:", result)
except ZeroDivisionError:
print("Cannot divide by zero.")
```
في هذا المثال، يتم استخدام الكلاس Calculator لتنفيذ القسمة والتعامل مع حالة القسمة على الصفر. يتم استخدام الكلمة المفتاحية "try" لتجريب العملية والكلمة المفتاحية "except" للتعامل مع استثناء القسمة على الصفر.
10. الاستدعاء السلسلي (Method Chaining):
يمكن استخدام الاستدعاء السلسلي لتسلسل الأساليب في سياق واحد دون الحاجة لتعيين الكائن في متغير مؤقت. لنستخدم مثالًا للكلاس التالي:
```python
class Text:
def __init__(self):
self.content = ""
def add(self, text):
self.content += text
return self
def capitalize(self):
self.content = self.content.capitalize()
return self
def display(self):
print(self.content)
```
في هذا المثال، يمكننا استدعاء الأساليب متتاليًا دون الحاجة لتعيين الكائن في متغير مؤقت. على سبيل المثال:
```python
text = Text()
text.add("hello").capitalize().display()
```
سيتم إضافة النص "hello"، ثم يتم تنسيقه ليبدأ بحرف كبير، ثم يتم عرض النص النهائي "Hello".اكتشف سرعة كتابة الأكواد مع موقع Z Type! اجعل عملية كتابة الأكواد أكثر فعالية وسرعة وانجز المهام بسرعة فائقة. ابدأ الآن واختبر قدراتك في البرمجة عن طريق الدخول إلى موقع Z Type وتحدي نفسك في الكتابة السريعة للأكواد. انغمس في تجربة اللعبة المسلية والتعلم في آن واحد. احصل على نتائج مدهشة وتعزيز مهاراتك في البرمجة بشكل ملحوظ. قم بتجربة Z Type الآن وشاهد كيف تصبح خبيرًا في كتابة الأكواد بسرعة ودقة.
ZType – Typing Game - Type to Shoot
https://zty.pe/
https://zty.pe/
zty.pe
ZType – Type to Shoot
A typing game that's actually fun to play.
Free Python Course with Projects
Google Internship Certificate to everyone 🏆✅
SignUp Free, Click here
👇👇👇
http://bit.ly/3YVrZSY
_____
Google Internship Certificate to everyone 🏆✅
SignUp Free, Click here
👇👇👇
http://bit.ly/3YVrZSY
_____
StackUp
StackUp: The New Home for Developers
Level up with over 200,000 developers on StackUp - Master the lastest technologies to build up your tech stack
هنا شرح مفصل لأنواع البيانات في لغة Python:
1. أنواع البيانات الأساسية (Primitive Data Types):
- الأعداد الصحيحة (Integers): يستخدم لتمثيل الأعداد الصحيحة مثل 1 و 2 و 100 و -5. في Python، يتم تعريف الأعداد الصحيحة بدون عشريات.
- الأعداد العشرية (Floats): يستخدم لتمثيل الأعداد العشرية أو الكسور مثل 3.14 و 2.5 و -0.5. في Python، يتم تعريف الأعداد العشرية بوجود علامة عشرية.
- السلاسل النصية (Strings): يستخدم لتمثيل النصوص أو التسلسلات الحرفية مثل "مرحباً" و "Hello World!" و "123". يتم تعريف السلاسل النصية بوضع النص داخل علامتي اقتباس مزدوجة أو اقتباسات مفردة.
- قيمة الحقيقة (Boolean): يستخدم لتمثيل حالتين محددتين هما True (صحيح) و False (خطأ). يستخدم في التحكم في تدفق البرنامج وشروط التحقق.
2. أنواع البيانات المركبة (Composite Data Types):
- القوائم (Lists): تستخدم لتخزين مجموعة من العناصر المرتبة والقابلة للتغيير. يمكن أن تحتوي على أي نوع من البيانات بما في ذلك أنواع البيانات الأخرى وحتى قوائم داخلية.
- الأشكال (Tuples): تستخدم لتخزين مجموعة من العناصر المرتبة ولكنها غير قابلة للتغيير بعد إنشائها. يمكن أن تحتوي على أي نوع من البيانات.
- القواميس (Dictionaries): تستخدم لتخزين البيانات في صورة زوج المفتاح والقيمة. يتم الوصول إلى القيم بواسطة المفتاح الذي يتم تعيينه لكل قيمة.
- المجموعات (Sets): تستخدم لتخزين مجموعة فريدة من العناصر بدون ترتيب محدد. تقدم عمليات فريدة مثل الاتحاد والتقاطع والاختلاف بين المجموعات.
3. أنواع البيانات المخصصة (Custom Data Types):
- الصفوف (Classes): تستخدم لتعريف بنية بيانات جديدة تتضمن الخصائص والسلوكيات. يتم إنشاء الكائنات من الصفوف لاستخدام البيانات وتنفيذ الوظائف المحددة.
- الوحدات (Modules): تستخدم لتنظيم الأكواد في ملفات منفصلة قابلة لإعادة الاستخدام. يمكن استيراد واستخدام الوحدات في ملفات البرامج الأخرى للوصول إلى الدوال والمتغيرات المعرفة فيها.
1. أنواع البيانات الأساسية (Primitive Data Types):
- الأعداد الصحيحة (Integers): يستخدم لتمثيل الأعداد الصحيحة مثل 1 و 2 و 100 و -5. في Python، يتم تعريف الأعداد الصحيحة بدون عشريات.
- الأعداد العشرية (Floats): يستخدم لتمثيل الأعداد العشرية أو الكسور مثل 3.14 و 2.5 و -0.5. في Python، يتم تعريف الأعداد العشرية بوجود علامة عشرية.
- السلاسل النصية (Strings): يستخدم لتمثيل النصوص أو التسلسلات الحرفية مثل "مرحباً" و "Hello World!" و "123". يتم تعريف السلاسل النصية بوضع النص داخل علامتي اقتباس مزدوجة أو اقتباسات مفردة.
- قيمة الحقيقة (Boolean): يستخدم لتمثيل حالتين محددتين هما True (صحيح) و False (خطأ). يستخدم في التحكم في تدفق البرنامج وشروط التحقق.
2. أنواع البيانات المركبة (Composite Data Types):
- القوائم (Lists): تستخدم لتخزين مجموعة من العناصر المرتبة والقابلة للتغيير. يمكن أن تحتوي على أي نوع من البيانات بما في ذلك أنواع البيانات الأخرى وحتى قوائم داخلية.
- الأشكال (Tuples): تستخدم لتخزين مجموعة من العناصر المرتبة ولكنها غير قابلة للتغيير بعد إنشائها. يمكن أن تحتوي على أي نوع من البيانات.
- القواميس (Dictionaries): تستخدم لتخزين البيانات في صورة زوج المفتاح والقيمة. يتم الوصول إلى القيم بواسطة المفتاح الذي يتم تعيينه لكل قيمة.
- المجموعات (Sets): تستخدم لتخزين مجموعة فريدة من العناصر بدون ترتيب محدد. تقدم عمليات فريدة مثل الاتحاد والتقاطع والاختلاف بين المجموعات.
3. أنواع البيانات المخصصة (Custom Data Types):
- الصفوف (Classes): تستخدم لتعريف بنية بيانات جديدة تتضمن الخصائص والسلوكيات. يتم إنشاء الكائنات من الصفوف لاستخدام البيانات وتنفيذ الوظائف المحددة.
- الوحدات (Modules): تستخدم لتنظيم الأكواد في ملفات منفصلة قابلة لإعادة الاستخدام. يمكن استيراد واستخدام الوحدات في ملفات البرامج الأخرى للوصول إلى الدوال والمتغيرات المعرفة فيها.
شرح مفصل حول كيفية إنشاء سكربت باستخدام لغة Python ومكتبة Selenium وطريقة إرسال طلبات HTTP باستخدام مكتبة Requests:
1. تثبيت المكتبات:
قم بتثبيت مكتبتي Selenium و Requests عن طريق استخدام مدير حزم Python (مثل pip). يمكنك استخدام الأمر التالي في سطر الأوامر:
```
pip install selenium requests
```
2. استيراد المكتبات:
قم بإضافة استيرادات المكتبات في بداية السكربت الخاص بك:
```python
from selenium import webdriver
import requests
```
3. تهيئة المتصفح:
قم بتهيئة المتصفح لاستخدام Selenium. يجب تحميل محرك متصفح متوافق (مثل Chrome WebDriver) وتعيين المسار الصحيح إليه:
```python
driver = webdriver.Chrome('path/to/chromedriver')
```
4. فتح صفحة الويب:
استخدم المتصفح لفتح صفحة الويب المستهدفة:
```python
driver.get('https://example.com')
```
5. التفاعل مع العناصر:
استخدم Selenium للتفاعل مع العناصر على صفحة الويب، مثل ملء حقول النموذج والنقر على الزر:
```python
element = driver.find_element_by_id('element_id')
element.send_keys('input_text')
button = driver.find_element_by_css_selector('button_selector')
button.click()
```
6. إرسال طلبات HTTP:
يمكنك استخدام مكتبة Requests لإرسال طلبات HTTP من خلال السكربت. على سبيل المثال، يمكنك إرسال طلب GET:
```python
response = requests.get('https://api.example.com')
print(response.text)
```
7. إغلاق المتصفح:
بعد الانتهاء من العمل مع المتصفح، قم بإغلاقه لتحرير الموارد:
```python
driver.quit()
```👍2
Python OOP Tutorial بواسطة Corey Schafer على YouTube: https://www.youtube.com/watch?v=ZDa-Z5JzLYM
YouTube
Python OOP Tutorial 1: Classes and Instances
In this Python Object-Oriented Tutorial, we will begin our series by learning how to create and use classes within Python. Classes allow us to logically group our data and functions in a way that is easy to reuse and also easy to build upon if need be. Let's…
هنا بعض الأمثلة العملية والاحترافية لاستخدام Object-Oriented Programming (OOP) في Python:
1. مثال على تصميم الكائنات:
قد نرغب في إنشاء برنامج لإدارة مستودع للمنتجات. يمكننا استخدام OOP لتصميم الكائنات المناسبة. على سبيل المثال:
python، لدينا صف
class Product:
def init(self, name, price):
self.name = name
self.price = price
def display_info(self):
print(f"Product: {self.name}")
print(f"Price: ${self.price}")
class Warehouse:
def init(self):
self.products = []
def add_product(self, product):
self.products.append(product)
def display_products(self):
for product in self.products:
product.display_info()
هنا
Product الذي يمثل المنتجات، وصف Warehouse الذي يمثل المستودع. يمكننا إضافة منتجات جديدة إلى المستودع وعرضها.2. مثال على الوراثة:
قد نرغب في إنشاء نظام لإدارة موظفين في شركة. يمكننا استخدام الوراثة لتعريف صفوف مشتقة لأنواع محددة من الموظفين. على سبيل المثال:
pythonينا صف
class Employee:
def init(self, name, salary):
self.name = name
self.salary = salary
def display_info(self):
print(f"Name: {self.name}")
print(f"Salary: ${self.salary}")
class Manager(Employee):
def init(self, name, salary, department):
super().init(name, salary)
self.department = department
def display_info(self):
super().display_info()
print(f"Department: {self.department}")
هنا، لد
Employee الذي يمثل الموظفين العامين، وصف Manager الذي يمثل المديرين. يرث Manager خصائص Employee ويمكنه إضافة خصائص إضافية. يمكننا عرض معلومات الموظفين والمديرين باستخدام دوال display_info.مكتبة Requests هي مكتبة بسيطة وقوية في Python تستخدم لإرسال طلبات HTTP والتفاعل مع الموارد عبر الإنترنت. تتيح لك هذه المكتبة إجراء طلبات GET و POST و PUT و DELETE وأكثر من ذلك بكل سهولة.
للبدء، يجب عليك التأكد من أنك قمت بتثبيت مكتبة Requests في بيئتك الافتراضية باستخدام pip. يمكنك تثبيتها بكتابة الأمر التالي في واجهة سطر الأوامر:
pip install requests
بعد تثبيت المكتبة، يمكنك الآن استيرادها في برنامجك باستخدام الأمر التالي:
python
import requests
الآن، سنبدأ بتنفيذ بعض العمليات الأساسية باستخدام مكتبة Requests.
1. إرسال طلب GET:
لإرسال طلب GET، يمكنك استخدام دالة
get() وتمرير عنوان URL الذي ترغب في الوصول إليه. على سبيل المثال، لجلب صفحة ويب بسيطة، يمكنك كتابة الكود التالي:python
response = requests.get("https://www.example.com")
print(response.text)
سيتم إرجاع المحتوى النصي للصفحة المطلوبة بواسطة الاستجابة
response.2. إرسال طلب POST:
لإرسال طلب POST، يمكنك استخدام دالة
post() وتمرير عنوان URL والبيانات التي ترغب في إرسالها. على سبيل المثال، لإرسال طلب POST ببيانات محددة، يمكنك كتابة الكود التالي:python
data = {
"username": "example_user",
"password": "123456"
}
response = requests.post("https://www.example.com/login", data=data)
print(response.text)
ستقوم هذه العملية بإرسال بيانات المستخدم (اسم المستخدم وكلمة المرور) إلى عنوان URL المحدد وسيتم عرض الاستجابة النصية.
3.التعامل مع الاستجابة:
يمكنك القيام بالعديد من العمليات على الاستجابة التي تحصل عليها باستخدام مكتبة Requests. بعض العمليات الشائعة تشمل:
- الوصول إلى حالة الاستجابة (response status code).
- الوصول إلى رأس الاستجابة (response headers).
- الوصول إلى المحتوى النصي للاستجابة (response content).
هناك العديد من السيناريوهات التي يمكن استخدام Requests فيها، وفيما يلي بعض الأمثلة الشائعة:
1. استرداد بيانات API:
في هذا المثال، سنستخدم Requests لاسترداد بيانات من واجهة برمجة التطبيق (API) وعرضها. نفترض أن لدينا API يقدم بيانات المستخدمين ونرغب في جلب بيانات المستخدم الأول. إليك الكود:
python
import requests
# استدعاء ال API
response = requests.get('https://api.example.com/users')
# التحقق من نجاح الاستجابة
if response.status_code == 200:
data = response.json() # تحويل الاستجابة إلى JSON
first_user = data[0] # الحصول على المستخدم الأول
print(first_user)
else:
print('Failed to retrieve data from API')
في هذا المثال، نقوم بإرسال طلب GET إلى عنوان URL للاستجابة. ثم نتحقق من أن الاستجابة ناجحة باستخدام الحالة النقطية للرمز (status code) 200. إذا نجحت الاستجابة، نقوم بتحويلها إلى JSON واستخراج البيانات التي نحتاجها.
2. إرسال ملف عبر طلب POST:
في هذا المثال، سنستخدم Requests لإرسال ملف إلى خادم عن طريق طلب POST. سنقوم بفتح الملف وإرساله كجزء من البيانات في الطلب POST. إليك الكود:
python
import requests
# فتح الملف وقراءته كنص
file_path = 'path/to/file.pdf'
with open(file_path, 'rb') as file:
file_data = file.read()
# إعداد بيانات الطلب POST
url = 'https://api.example.com/upload'
data = {
'file': file_data
}
# إرسال الطلب POST
response = requests.post(url, files=data)
# التحقق من نجاح الاستجابة
if response.status_code == 200:
print('File uploaded successfully')
else:
print('Failed to upload file')
في هذا المثال، نقوم بفتح الملف المطلوب إرساله وقراءته كنص بنظام البايت (bytes). ثم نعيّن البيانات المطلوبة للطلب POST، حيث نضع الملف كجزء من البيانات. ثم نرسل الطلب POST ونتحقق من نجاح الاستجابة.