تفاوت پارامتر و آرگومان
پارامترها همون اسمهایی هستن که موقع نوشتن و تعریف یه تابع یا متد استفاده میشن. اما آرگومانها اون مقادیر واقعیای هستن که موقع فراخوانی تابع یا متد، بهش پاس داده میشن. یعنی وقتی تابع رو صدا میزنی، مقادیری که بهش میدی میشن آرگومان، و تابع این مقادیر رو روی پارامترهاش تنظیم میکنه.
دوباره به کدهای بالا نگاه کن: موقع صدا زدن متد sum() در کلاس Summation، تو فقط دو تا آرگومان بهش پاس دادی؛ در حالی که موقع تعریف متد، سه تا پارامتر نوشته بودی: self، a و b.
پس چه اتفاقی برای self افتاد؟
اولین آرگومان هر متدی در پایتون، همیشه یه اشارهگر به نمونه فعلی اون کلاسه که در این مثال همون شیء ساختهشده از Summation هست. طبق یه قرارداد استاندارد، اسم این پارامتر رو همیشه self میذارن.
معنیش اینه که موقع صدا زدن متدها، نیازی نیست self رو خودت پاس بدی؛ چون پایتون به صورت خودکار نمونهٔ فعلی رو به عنوان اولین پارامتر به متد پاس میده.