codingcogs' logo

تعریف Class

همیشه کلاس‌های داخلی ( built-in ) پایتون و کلاس‌های پکیج‌های پایتونی برای ما کافی نیستند. معمولا در توسعه‌ی نرم‌افزار با پایتون و کار با پکیج‌ها و فریم‌ورک‌های مختلف، classهای جدیدی می‌سازیم و که propertyها و methodهای مورد نظر خودمان را داشته باشند. برای مثال فرض کنید میخواهیم یک کلاس برای تعریف افراد ایرانی بسازیم:

class Iranian():
    is_human = True
    lives_in = "Middle_East"

ایرانی‌ها آدم هستند (is_human = True) و در خاورمیانه زندگی می‌کنند (lives_in = Middle_East).

بیایید یک فرد جدید با این کلاس تعریف کنیم و type کلاس آن را ببینیم:

ali = Iranian()
type(ali)
# __main__.Iranian

2 پارامتر attribute داریم که به آن‌ها Class attributes گفته می‌شود. Class attributes بین object‌های یک کلاس مشترک هستند. کدهای زیر را جداگانه اجرا کنید یا با استفاده از print هردو را در یک بلوک نمایش دهید:

ali.is_human # True

ali.lives_in # 'Middle_East'

نکته:

پارامتر‌های Class attributes در این مثال پس از ایجاد object قابل تغییر هستند. در صورتی که هرکدام از این موارد را برای object تغییر دهیم، برای آن object تغییر می‌کنند اما object های جدید از class قبلی هنوز ویژگی‌های پیش‌فرض را دارند. class attributes بعد از ایجاد object تبدیل به instance attributes می‌شوند.