آموزش پروپرتیهای کلاس در پایتون
پروپرتیها، درواقع متغیرهایی هستند که به یک کلاس تعلق دارند. آنها، دادهها را برای هر آبجکتی که از یک کلاس ایجاد شده است، ذخیره میکنند.
مثال شماره 1
ایجاد یک کلاس به همراه پروپرتیها:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Emil", 36)
print(p1.name)
print(p1.age)
نتیجه:
Emil
36
امتحان کنیددسترسی به پروپرتیها در پایتون
ما میتوانیم با استفاده از نماد نقطه، به پروپرتیهای آبجکتها دسترسی داشته باشیم:
مثال شماره 2
دسترسی به پروپرتیهای یک آبجکت:
class Car:
def __init__(self, brand, model):
self.brand = brand
self.model = model
car1 = Car("Toyota", "Corolla")
print(car1.brand)
print(car1.model)
نتیجه:
Toyota
Corolla
امتحان کنیداصلاح کردن پروپرتیها
این امکان وجود دارد که مقدار پروپرتیهای آبجکتها را اصلاح کنیم:
مثال شماره 3
تغییر دادن پروپرتی age:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("Hello my name is " + self.name)
p1 = Person("John", 36)
p1.age = 40
print(p1.age)
نتیجه:
40
امتحان کنیدحذف کردن پروپرتیها
ما میتوانیم با استفاده از کلمهی کلیدی del پروپرتیها را از آبجکتها حذف(delete) کنیم:
مثال شماره 4
حذف کردن پروپرتی age:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("Hello my name is " + self.name)
p1 = Person("Linus", 18)
del p1.age
print(p1.name)
print(p1.age)
نتیجه:
Linus
Traceback (most recent call last):
File "demo_class7.py", line 14, in <module>
AttributeError: 'Person' object has no attribute 'age'
امتحان کنیدپروپرتیهای کلاس در مقابل پروپرتیهای آبجکت
پروپرتیهایی که درون متد __init__() تعریف شدهاند، به هریک از آبجکتها تعلق دارند؛ که به آنها، پروپرتیهای نمونه(instance properties) گفته میشود.
پروپرتیهایی که در بیرون از متدها قرار دارند، به خود کلاس تعلق دارند؛ که به آنها، پروپرتیهای کلاس(class properties) گفته میشود و توسط تمام آبجکتها به اشتراک گذاشته میشوند.
مثال شماره 5
پروپرتی کلاس(Class property) در مقابل پروپرتی نمونه(instance property):
class Person:
species = "Human" # پروپرتی کلاس
def __init__(self, name):
self.name = name # پروپرتی نمونه
p1 = Person("Emil")
p2 = Person("Tobias")
print(p1.name)
print(p2.name)
print(p1.species)
print(p2.species)
نتیجه:
Emil
Tobias
Human
Human
امتحان کنیداصلاح کردن پروپرتیهای کلاس(Class Properties)
وقتی که مقدار یک پروپرتی کلاس(class property) را اصلاح کنیم، این کار، روی تمام آبجکتها اثر میگذارد:
مثال شماره 6
تغییر دادن یک پروپرتی کلاس(class property):
class Person:
lastname = ""
def __init__(self, name):
self.name = name
p1 = Person("Linus")
p2 = Person("Emil")
Person.lastname = "Refsnes"
print(p1.lastname)
print(p2.lastname)
نتیجه:
Refsnes
Refsnes
امتحان کنیداضافه کردن پروپرتیهای جدید
ما میتوانیم به آبجکتهای موجود، پروپرتیهای جدیدی را اضافه کنیم:
مثال شماره 7
اضافه کردن یک پروپرتی جدید به یک آبجکت:
class Person:
def __init__(self, name):
self.name = name
p1 = Person("Tobias")
p1.age = 25
p1.city = "Oslo"
print(p1.name)
print(p1.age)
print(p1.city)
نتیجه:
Tobias
25
Oslo
امتحان کنیدنکته: اضافه کردن پروپرتیها به این طریق، تنها باعث میشود آنها، به همان آبجکت اضافه شوند، نه به تمام آبجکتهای کلاس مورد نظر.
منبع: www.w3schools.com/python
- بازدید: 62
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.