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

السؤال

Recommended Posts

  • 0
نشر
بتاريخ 1 دقيقة مضت قال Ali Ahmed39:

السلام عليكم

 

هل كل شيء في بايثون عبارة عن كائن؟

وعليكم السلام مرحبا علي،

في لغة برمجة بايثون (Python)، يعتبر كل شيء عبارة عن كائن (Object) في النظام البرمجي. في بايثون، ينطبق مفهوم "كل شيء هو كائن" (Everything is an object)، وهذا يعني أن جميع القيم والبيانات والوظائف في بايثون تعتبر كائنات.

كلمة "كائن" تشير إلى مشروع برمجي قابل للاستخدام يحتوي على متغيرات ووظائف ذات سلوك محدد. يمكن أن تكون هذه الكائنات تمثيلًا لأشياء في العالم الحقيقي أو أنماط برمجية معينة.

على سبيل المثال، عندما تقوم بإنشاء متغير في بايثون، فإن هذا المتغير في الواقع هو كائن. وعند استدعاء واستخدام دوال أو طرق (Methods) على هذا المتغير، فإنه يتم تطبيق السلوك المحدد لهذا الكائن.

هذا المفهوم العام يعتبر أحد مبادئ التصميم في بايثون ويساهم في تبسيط اللغة واستخدامها بشكل فعال ومرونة في البرمجة.

أتمنى أن يكون ذلك واضحًا. إذا كان لديك أي أسئلة أخرى، فلا تتردد في طرحها!

بالتوفيق.

  • 0
نشر

صحيح، فكل الأشياء (المتغيرات، الدوال، القوائم، الصفوف، وغيرها) عبارة عن كائنات.

وفي بايثون، يتم التعامل مع البيانات والعمليات على شكل كائنات. الكائنات تحتوي على خصائص (بيانات) وأساليب (وظائف)، ويمكن للكائنات التفاعل مع بعضها البعض وتبادل البيانات والمعلومات.

ومن الممكن أن تكون الكائنات من الأنواع المدمجة في بايثون مثل الأعداد والسلاسل والقوائم والقواميس.

ومن الممكن أيضًا أن تكون الكائنات من الأنواع المخصصة التي يتم إنشاؤها بواسطتك، وكل شيء في بايثون يعتبر كائنًا، بما في ذلك المفاهيم الأساسية مثل الدوال والمتغيرات، كالتالي:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def introduce(self):
        print("My name is", self.name, "and I'm", self.age, "years old.")

# إنشاء كائن من النوع "Person"
person = Person("أحمد", 25)
person.introduce()  # الطباعة: My name is أحمد and I'm 25 years old.

تم تعريف الكائن Person المخصص باستخدام الكلمة المفتاحية class، وتحديد خصائص وأساليب الكائن في الداخل.

مثل تحديد خاصيتين له (الاسم والعمر) بالإضافة إلى أسلوب (introduce) يقوم بطباعة معلومات الشخص، ثم إنشاء كائن من النوع "Person" واستدعاء الأسلوب (introduce) لطباعة المعلومات.

وكمثال آخر للتوضيح، لنفترض أن لدينا كائنًا من النوع "قائمة" (List) يحتوي على أرقام:

numbers = [1, 2, 3, 4, 5]

فتستطيع الوصول إلى خصائص الكائن واستخدام الأساليب المتاحة له، كاستخدام الأسلوب append() لإضافة عنصر جديد إلى القائمة:

numbers.append(6)
print(numbers)

والنتيجة هي طباعة القائمة بعد إضافة العنصر الجديد:

[1, 2, 3, 4, 5, 6]

و باستخدام الأسلوب append() المتاح لكائن القائمة (الكائن numbers) أضفنا العنصر 6 إلى نهاية القائمة.

 

  • 0
نشر

نعم، حتى الدوال تعتبر كائنات، هذا يعني أنه يمكنك تمرير دالة كمعطى، أو يمكنك تخزين دالة في متغير و كل ما يمكنك تطبيقه على أي كائن.

مثال على ذلك:

def f(x):
	return x * x

def apply_f(arr, func):
	return [func(e) for e in arr]


arr = [1, 2, 3, 4]
result = apply_f(arr, f)
print(result)  # [1, 4, 9, 16]

 

  • 0
نشر
بتاريخ 2 دقائق مضت قال Mustafa Suleiman:

صحيح، فكل الأشياء (المتغيرات، الدوال، القوائم، الصفوف، وغيرها) عبارة عن كائنات.

وفي بايثون، يتم التعامل مع البيانات والعمليات على شكل كائنات. الكائنات تحتوي على خصائص (بيانات) وأساليب (وظائف)، ويمكن للكائنات التفاعل مع بعضها البعض وتبادل البيانات والمعلومات.

ومن الممكن أن تكون الكائنات من الأنواع المدمجة في بايثون مثل الأعداد والسلاسل والقوائم والقواميس.

ومن الممكن أيضًا أن تكون الكائنات من الأنواع المخصصة التي يتم إنشاؤها بواسطتك، وكل شيء في بايثون يعتبر كائنًا، بما في ذلك المفاهيم الأساسية مثل الدوال والمتغيرات، كالتالي:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def introduce(self):
        print("My name is", self.name, "and I'm", self.age, "years old.")

# إنشاء كائن من النوع "Person"
person = Person("أحمد", 25)
person.introduce()  # الطباعة: My name is أحمد and I'm 25 years old.

تم تعريف الكائن Person المخصص باستخدام الكلمة المفتاحية class، وتحديد خصائص وأساليب الكائن في الداخل.

مثل تحديد خاصيتين له (الاسم والعمر) بالإضافة إلى أسلوب (introduce) يقوم بطباعة معلومات الشخص، ثم إنشاء كائن من النوع "Person" واستدعاء الأسلوب (introduce) لطباعة المعلومات.

وكمثال آخر للتوضيح، لنفترض أن لدينا كائنًا من النوع "قائمة" (List) يحتوي على أرقام:

numbers = [1, 2, 3, 4, 5]

فتستطيع الوصول إلى خصائص الكائن واستخدام الأساليب المتاحة له، كاستخدام الأسلوب append() لإضافة عنصر جديد إلى القائمة:

numbers.append(6)
print(numbers)

والنتيجة هي طباعة القائمة بعد إضافة العنصر الجديد:

[1, 2, 3, 4, 5, 6]

و باستخدام الأسلوب append() المتاح لكائن القائمة (الكائن numbers) أضفنا العنصر 6 إلى نهاية القائمة.

 

تمام , شكرا جدا 

شكرا جدا ليكم جميعن

  • 0
نشر

في بايثون، يُعتبر كل شيء عبارة عن كائن (object). يستند بايثون إلى نموذج البرمجة الكائنية القوية، حيث يتم التعامل مع البيانات والمتغيرات والوظائف والكلاسات وحتى الأنواع البنيوية (data types) ككائنات.

بصفة عامة، يمكن القول أن الكائنات في بايثون هي مجرد مساحات في الذاكرة تحتوي على البيانات وتقدم طرقًا للتفاعل معها. وتحتوي جميع الكائنات في بايثون على الخصائص (attributes) والأساليب (methods) التي تحدد سلوكها وطريقة تفاعلها مع العالم الخارجي.

بعض الأمثلة البسيطة على الكائنات في بايثون هي القوائم (lists) والسلاسل (strings) والأعداد (numbers). تتضمن القوائم خصائص مثل الطول والعناصر الموجودة فيها، وتوفر أساليب لإضافة وإزالة العناصر وتعديلها. بالمثل، تتمتع السلاسل بخصائص تتيح الوصول إلى الأحرف الفردية والتلاعب بها، وتوفر أساليب لتنسيق النصوص وتحويلها.

باختصار، نعم، في بايثون كل شيء عبارة عن كائن، ويمكن التعامل معه والتلاعب به باستخدام خصائصه وأساليبه المحددة.

  • 0
نشر
  • كل شيء في بايثون هو كائن - أنواع متغيرة بدائية (على سبيل المثال، أعداد صحيحة وعشرية وسلاسل) وأنواع مدمجة (على سبيل المثال، قوائم ومعاجم) وأنواع محددة من قبل المستخدم (على سبيل المثال، فئات، دوال).
  • للكائنات خصائص (سمات) ووظائف (طرق). على سبيل المثال، لكائن سلسلة .upper() طريقة لتحويلها إلى حروف كبيرة و .endswith() الطريقة للتحقق من إذا كانت تنتهي بفرعسلسلة محددة.
  •  عند تعريف فئة، فإنك ببساطة تنشئ نوع كائن جديد. فإن نسخ الفئة (الكائنات) ترث الخصائص والطرق من الفئة.
  • التوجه الكائني يعطي الكود البايثوني إعادة الاستخدام والقابلية للتوسع والتصميم الوحدي. يمكنك توريث الفئات الموجودة، إعادة تعريف الطرق وإنشاء نماذج كائنية هرمية.
  • حتى الوحدات/الحزم هي كائنات لديها سمة .name. الدوال هي كائنات يمكن تمريرها وتخزينها في متغيرات إلخ.
  • كل شيء كائن، ولكن بعض الكائنات مثل الأعداد الصحيحة والعشرية والسلاسل غير قابلة للتغيير "غير قابلة للتغيير"، أي لا يمكن تغيير قيمها. القوائم والمعاجم إلخ قابلة للتغيير "قابلة للتعديل".
  • وراء الكواليس، يتم تخصيص"object id" للكائنات من قبل ال interpreter لتحديدها بشكل فريد أثناء التنفيذ. 

باختصار، نستخدم isinstance() للتحقق مما إذا كان شيء ما كائن أو لا. في كل مرة نطبع True لأن كل الأمثلة هي حقاً كائنات في بايثون.

# الأعداد هي كائنات
x = 1
print(isinstance(x, object)) # يطبع True
# السلاسل هي كائنات
y = "Hello"
print(isinstance(y, object)) # يطبع True
# القوائم هي كائنات 
z = [1, 2, 3]
print(isinstance(z, object)) # يطبع True
# تعريف فئة  
class Person:
    pass
# مثيل من هذه الفئة هو كائن
james = Person()
print(isinstance(james, object)) # يطبع True
# وحدات المكتبة هي كائنات
import math     
print(isinstance(math, object)) # يطبع True
# الدوال هي كائنات  
def add(x, y):
    return x + y
print(isinstance(add, object)) # يطبع True

 

  • 0
نشر

بالإضافة إلى الأجابات السابقة,

هناك خمسة أنواع رئيسية من لغات البرمجة، على الرغم من أن بعض اللغات يمكن أن تندرج تحت أكثر من نوع:

1. لغات البرمجة الإجرائية(Procedural programming languages): تتبع هذه اللغات سلسلة من البيانات أو الأوامر لتحقيق النتيجة المطلوبة. وتسمى كل سلسلة من الخطوات إجراءً، ويحتوي البرنامج المكتوب بأحد هذه اللغات على إجراء أو أكثر. وتشمل أمثلة على هذه اللغات:

  • C وC++
  • Java
  • Pascal
  • BASIC
  • Codio

2. لغات البرمجة الوظيفية(Functional programming languages): بدلاً من التركيز على تنفيذ البيانات، تركز اللغات الوظيفية على نتائج الوظائف الرياضية والتقييمات. يقوم كل وظيفة، وهي وحدة قابلة لإعادة الاستخدام من الكود، بأداء مهمة محددة وإرجاع نتيجة. وستختلف النتيجة تبعًا للبيانات التي تدخلها في الوظيفة. وتشمل بعض اللغات الوظيفية الشائعة:

  1. Scala
  2. Erlang
  3. Haskell
  4. Elixir
  5. F#

3. لغات البرمجة كائنية التوجه(Object-oriented programming languages): هذا النوع من اللغة يعامل البرنامج كمجموعة من الكائنات المؤلفة من البيانات وعناصر البرنامج، المعروفة باسم السمات والأساليب. ويمكن إعادة استخدام الكائنات داخل البرنامج أو في برامج أخرى، مما يجعلها لغة شائعة للبرامج المعقدة، حيث يسهل إعادة استخدام الشفرة وتوسيعها. وتشمل بعض لغات البرمجة الكائنية التوجه:

  • Java
  • Python
  • PHP
  • C++
  • Ruby

4. لغات البرمجة النصية(Scripting languages): يستخدم المبرمجون لغات البرمجة النصية لتلقين الحواسيب المهام المتكررة وإدارة المحتوى الديناميكي على الويب، أو دعم العمليات في التطبيقات الأكبر. وتشمل بعض لغات البرمجة النصية الشائعة:

  • PHP
  • Ruby
  • Python
  • bash
  • Perl
  • Node.js

5. لغات البرمجة المنطقية(Logic programming languages): بدلاً من إخبار الحاسوب ما يجب فعله، تعبر لغات البرمجة المنطقية عن سلسلة من الحقائق والقواعد لتوجيه الحاسوب حول كيفية اتخاذ القرارات. وتشمل بعض أمثلة لغات المنطق:

  • Prolog
  • Absys
  • Datalog
  • Alma-0

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...