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

السؤال

Recommended Posts

  • 0
نشر

يمكننا انشاء كلاس اسمه person ومن ثم يمكننا تعريف المتغيرات فيه بشكل طبيعي كما نفعل عادة, لاحظي الكود التالي

class Person:
  per_age=20
  per_name="Mohammed"
  per_id=1
  per_address="palestine"

هكذا نستطيع تعريف المتغيرات, يمكننا استخدامها هكذا

x = person()
print(x.per_name)

سوف تكون النتيحة كالتالي

Mohammed

 

  • 0
نشر

أرجو مراجعة درس الأصناف في بايثون، فالسؤال بسيط و ليس معقد و يجب عليك حله بسهولة.

علينا تعريف صنف، ثم في أول جزء نقوم بتعريف الخصائص لهذا الصنف attributes:

.

.

الحل:

class Person:
  per_id = 0
  per_age = 0
  per_name = ''
  per_address = ''
  
  def __init__(self):
    self.per_id = 0
    per_age = 0
    per_name = ''
    per_address = ''

أو من خلال دالة التهيئة init (نكتفي بالجزء الأول إن لم نريد استخدام دالة بناء)

بعد بناء الغرض ستكون فيم الخصائص فارغة:

p = person()

print(x.per_name) لاشيئ

 

وأرجو الانتباه أنه لا يمكننا وضع إشارة الطرح "-" ضمن اسم خاصية أو متغير برمجي لأنه سيعتبرها عملية طرح بل نستبدلها بالإشارة "_" underscore وهي مقبولة في أسماء المتغيرات و الخواص...

  • 0
نشر

الطريقة الأخرى لحل هذه المشكلة هي تمرير القيم الإبتدائية في دالة الإنشاء constructor function و في حال تم إدخال بيانات عند إنشاء object من person class ستتم أخذ القيم الممررة و إسنادها مباشرة للمتغيرات، و في حال كانت لا توجد بيانات سيتم إدراج الأصفار و القيم النصية الفارغة كقيم إبتدائية.

class person:
  def __init__(self, per_name="", per_age=0, per_address="", per_id=0):
    self.per_name = per_name
    self.per_age = per_age
    self.per_address = per_address
    self.per_id = per_id

والان يمكننا إنشاء object من class person لنا الخيار في تمرير بيانات كما في المثال التالي:

p = person("test",20,"test",1234)

print(p.per_name,p.per_age,p.per_address,p.per_id) 

# test 20 test 1234

و إما أن نقوم بإنشاء object بدون أن نمرر أي قيم و في هذه الحالة سيأخذ القيم الإبتدائية في كل الأحوال:

p = person()

print(p.per_name,p.per_age,p.per_address,p.per_id) 

#  0  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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...