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

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

لين أبو شعر

السؤال

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

تم التعديل في بواسطة Wael Aljamal
توضيح السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...