تعریف کردن کلاس ها

بعضی موقع ها خود کلاس های داخلی پایتون و کلاس هایی که توسط بقیه کتابخونه ها ارائه میشن برای کار ما کافی هستن؛ اما اغلب ممکنه نیاز باشه که یک نوع آبجکت جدید اختراع کنیم، صرفا بخاطر اینکه ممکنه اون آبجکت و خاصیت ها / متد هایی که ما نیاز داریم در کتابخونه های استاندارد وجود نداشته باشن. اگه یادتون باشه گفتیم که یک کلاس مثل یک قالب برای آبجکت ها میمونه.

برای مثال یک کلاس جدید به نام Australian ایجاد میکنیم:

>>> class Australian():
is_human = True
enjoys_sport = True

هم اکنون یک قالب آماده برای آبجکت های Australian (یا حالا مردم استرالیایی، هرجور که میخواید اسمش رو بگذارید!) در اختیار داریم. در حال حاضر کد ما فرض میکنه که همه استرالیایی های جدید انسان هستن (is_human = True) و از ورزش هم لذت میبرن (enjoys_sport = True).

حالا اول میریم یک استرالیایی جدید ایجاد میکنیم:

>>> john = Australian()

کلاس این استرالیایی رو به صورت زیر نمایش میدیم:

>>> type(john)
<class '__main__.Australian'>

میتونیم یه سری از اتریبیوت های آبجکت john رو هم بررسی کنیم:

>>> john.is_human
True
>>> john.enjoys_sport
True

به is_human و enjoys_sport میگیم اتریبیوت های کلاس (Class Attributes). این اتریبیوت ها در بین آبجکت های ایجاد شده از همین کلاس تغییر نمیکنن. بریم یه استرالیایی دیگه ایجاد کنیم:

>>> ming = Australian()

مینگ هم یک انسانه و از ورزش خوشش میاد. به زودی در مورد اتریبیوت های نمونه ها (instance ها) یاد میگیریم، که میتونن در آبجکت های ایجاد شده از یک کلاس متفاوت باشن.