• 0

كيف أقوم بانشاء attributes داخل صنف person مع قيم ابتدائية بلغة البايثون ؟

كيف أقوم بانشاء attributes داخل person مثل per-name, per-age, per-address, and per-id واعطيهم قيم ابتدائية فارغة واصفار بلغة البايثون ؟

تمّ تعديل بواسطة Wael Aljamal
توضيح السؤال
2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 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

هذا هو الجواب الدقيق لماتطلبه أخي..

2021-05-25_01h03_26.png

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 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

القيم المطبوعة في الفراغ لكل من متغيرات الإسم و العنوان و أصفار للرقم الشخصي و العمر. لاحظ قيامي بتحويل علامات الطرح في أسماء المتغيرات لشرطة أفقية (_) و ذلك للإلتزام بشروط التسمية في لغة بايثون. يجب أن تنتبه انه لا يوجد شرط في نوع البيانات المدخلة و الذي يجب أن تطبقه لتفادي إدخال اي بيانات نصية محل بيانات رقمية والعكس.

 

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن