سؤال
أنا جديد في بيثون. كنت أحاول تحديد وتشغيل وظيفة بسيطة في الفصل.
هل يمكن لأي شخص أن يقول لي ما هو الخطأ في الرمز الخاص بي:
class A :
def m1(name,age,address) :
print('Name -->',name)
print('Age -->',age)
print('Address -->',address)
>>> a = A()
>>> a.m1('X',12,'XXXX')
Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
a.m1('X',12,'XXXX')
أنا أحصل أدناه على الخطأ
TypeError: M1 () يأخذ بالضبط 3 حجج الموضعية (4 معين)
المحلول
أساليب مثيل تأخذ مثيل الوسيطة الأولى:
class A :
def m1(self, name,age,address) :
print('Name -->',name)
print('Age -->',age)
print('Address -->',address)
تستطيع ايضا استخذام تضمين التغريدة لإنشاء وظيفة ثابتة:
class A :
@staticmethod
def m1(name,age,address) :
print('Name -->',name)
print('Age -->',age)
print('Address -->',address)
نصائح أخرى
المعلمة الأولى هي دائما الكائن نفسه.
class A :
def m1(self, name,age,address) :
print('Name -->',name)
print('Age -->',age)
print('Address -->',address)
حسب الاتفاقية، تلقي الأساليب في حالة فئة إشارة كائن كوسيطة 1st، اسمه self
.
>>> class A:
... def m1(self,name,age,address):
... print('Name -->',name)
... print('Age -->',age)
... print('Address -->',address)
...
>>> a=A()
>>> a.m1('X',12,'XXXX')
('Name -->', 'X')
('Age -->', 12)
('Address -->', 'XXXX')
>>>
لا تنتمي إلى StackOverflow