اجرای یک متد در مرحله تعریف یک نمونه

سلام. وقت بخیر.

من نیاز دارم توی یک کلاس پایتون وقتی یک نمونه از کلاسی که نوشتم را دارم تعریف می‌کنم، یک متد که داخل کلاس
از قبل مشخص کردم خودکار اجرا بشه. مثلا اگر من کلاسی دارم به اسم Car و متد داخل آن هست به نام start، نیاز دارم در زمان تعریف نمونه از کلاس car، خودکار متد start هم اجرا بشه. برای مثال

calss Car():
    def __init__(self, name: str) -> None:
        self.name = name

    def start(self):
        return f'the car is {name}'



car1 = Car('Mercedes')
car1.start()

همینطور که توی کد می‌بینید من باید بعد از درست کردن یک نمونه از کلاسم، یک بار متد start رو هم صدا بزنم.
راهی هست که بشه در همان زمان تعریف نمونه متد start دیفالت اجرا بشه؟ مثلا:

car1 = Car('Mercedes')

خیلی ممنونم


def __init__(self, name: str) -> None:
  self.name = name
  self.start()
5 پسندیده

خیلی ممنون. نمی‌دونم واقعا چرا هرچی سرچ کردم به جواب نرسیدم!

1 پسندیده

زیاد غیر عادی نیست که به جواب نرسیدی با جستجو کردن. بنظرم این سوال بیشتر مفهومی هست. اگر مفهوم طرز تعریف کلاس در پایتون و اون تابع init رو درست فهمیده باشی اصلا این سوال برات پیش نمیاد.
الآن با توجه به جوابی که گرفتی احتمالا مفهوم اینا برات روشن تر شده باشه.

1 پسندیده

سلام، ممنونم، بله درست می‌گین، البته من بیشتر فکر می‌کردم init فقط برای تعریف متغیر هستش، برای همین اصلا ایده‌ای نداشتم برای این جریان.

و خب جواب باعث شد بیشتر پی ببرم که چقدر بی سوادم،

زیاد میبینم تازه‌کار‌ها میگن ما بی‌سوادیم ما احمقیم ما نادونیم و از این‌جور حرفا. راستش خودم هم قبلا همینجوری بودم. ولی الآن فکر می‌کنم این اشتباهه. «بی‌سواد» کلمه خوبی نیست. به جاش از «تازه‌کار» استفاده کن :slight_smile:

2 پسندیده