class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John", 36)
print(p1.name)
print(p1.age)
```
ما وظيفة self
2 Likes
لو تجرب الكود التالي
class Person:
def __init__(self, name, age):
new_name = name
self.age = age
p1 = Person("John", 36)
print(p1.new_name)
print(p1.age)
لاحظ أنني كتبت new_name = name
وحينما طبعته كتبت print(p1.new_name)
المفروض أن هذا الكود سيعمل، صحيح؟
غير صحيح!
السبب اننا هنا لم نستعمل self، الذي يشير إلى الـ object نفسه (يعني داخل p1 سيتم حفظ المتغير بعد self)
هذا مثال آخر:
class Car:
def __init__(self):
self.x = 5
car1 = Car()
print(car1.x)
وهذا مثال آخر
class Car:
def __init__(self):
x = 5
car1 = Car()
print(car1.x)
ممكن تخبرني من المثال الذي سيعمل في الحالتين ولما؟
المثال الاول هو الذى يعمل ام المثال الثانى لا يعمل بسبب عدم وجود self الذى تشير للى opject نفسه
1 Like
1 Like