به آموزشگاه مجازی سینا خوش آمدید!

آموزش پروپرتی‌های کلاس در پایتون

امتیاز
(0)

پروپرتی‌ها، درواقع متغیرهایی هستند که به یک کلاس تعلق دارند. آنها، داده‌ها را برای هر آبجکتی که از یک کلاس ایجاد شده است، ذخیره می‌کنند. 

مثال شماره 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. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.

ارسال