متد init (init Method)
اینجا درباره «متد init» حرف می زنیم. متد «__init__» هنگام ساخت شیء اجرا می شود. این متد «سازنده (Constructor)» است؛ یعنی مقداردهی اولیه را انجام می دهد. مثل اولین تنظیمات گوشی بعد از روشن کردن.
تعریف متد __init__
هر کلاس می تواند متد «__init__» داشته باشد. این متد ویژگی ها را همان اول تنظیم می کند.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Emil", 36)
print(p1.name)
print(p1.age)
نکته: متد «__init__» خودکار موقع ساخت شیء اجرا می شود.
چرا از __init__ استفاده کنیم؟
بدون «__init__» باید هر ویژگی را جداگانه تنظیم کنی. این کار تکراری می شود.
class Person:
pass
p1 = Person()
p1.name = "Tobias"
p1.age = 25
print(p1.name)
print(p1.age)
با «__init__» همه چیز مرتب و کوتاه تر می شود.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Linus", 28)
print(p1.name)
print(p1.age)
مقدار پیش فرض در __init__
می توانی برای پارامترها مقدار پیش فرض بگذاری. اگر چیزی ندهی، همان استفاده می شود.
class Person:
def __init__(self, name, age = 18):
self.name = name
self.age = age
p1 = Person("Emil")
p2 = Person("Tobias", 25)
print(p1.name, p1.age)
print(p2.name, p2.age)
چند پارامتر در __init__
هرچقدر لازم است پارامتر بگذار. سپس همان ها را ویژگی کن.
class Person:
def __init__(self, name, age, city, country):
self.name = name
self.age = age
self.city = city
self.country = country
p1 = Person("Linus", 30, "Oslo", "Norway")
print(p1.name)
print(p1.age)
print(p1.city)
print(p1.country)
گام های عملی
- کلاس بساز و __init__ تعریف کن.
- ویژگی ها را داخل __init__ مقداردهی کن.
- شیء بساز و خروجی ها را چاپ کن.
- یک پارامتر پیش فرض اضافه کن و تست کن.
مطالعه بعدی
برای شروع شیءگرایی، صفحه کلاس ها/اشیا را ببین. سپس درباره self بیشتر یاد بگیر.
جمع بندی سریع
- «__init__» سازنده شیء است.
- مقداردهی اولیه را راحت می کند.
- می تواند مقدار پیش فرض داشته باشد.
- می تواند پارامترهای زیاد بگیرد.