متدها یکی از مهمترین بخشهای زبان پایتون هستند و تقریبا در تمام برنامهها از آنها استفاده میشود. هر نوع داده در پایتون، از رشته و لیست گرفته تا دیکشنری، مجموعه و فایل، مجموعهای از متدهای اختصاصی دارد که انجام عملیات مختلف را سادهتر، سریعتر و خواناتر میکنند.به همین دلیل، آشنایی با متدهای هر شی یکی از مهارتهای ضروری برای نوشتن کدهای حرفهای و بهینه در آموزش پایتون است.
در این راهنما، تمام متدهای مهم و پرکاربرد پایتون را بهصورت طبقهبندیشده بررسی میکنیم. علاوهبر معرفی هر متد، نحوه استفاده، کاربرد واقعی، پارامترها و مثالهای عملی آن را نیز خواهید دید تا بتوانید بهراحتی متد مناسب را برای هر نوع داده انتخاب کرده و از این مقاله بهعنوان یک مرجع کامل در پروژههای پایتونی خود استفاده کنید.
متد در پایتون چیست و چه تفاوتی با تابع دارد؟
وقتی در پایتون با دادهای مانند یک رشته، لیست، دیکشنری یا مجموعه کار میکنید، هر کدام از این دادهها قابلیتهای مخصوص به خود را دارند. این قابلیتها در قالب متد (Method) در اختیار شما قرار میگیرند و برای انجام کارهایی طراحی شدهاند که مستقیما به همان نوع داده مربوط است. برای مثال، یک رشته میتواند به حروف بزرگ تبدیل شود، یک لیست امکان اضافهکردن عضو جدید را دارد و یک دیکشنری میتواند کلیدها یا مقادیر خود را در اختیار شما قرار دهد. برای استفاده از این قابلیتها، نام شی را نوشته، سپس با استفاده از عملگر نقطه (.) متد مورد نظر را فراخوانی میکنید؛ مانند text.upper() یا numbers.sort().
ددر مقابل، تابع (Function) به شی خاصی وابسته نیست و بهصورت مستقل فراخوانی میشود؛ مفهومی که در مباحث بنیادی آموزش برنامهنویسی به تفصیل بررسی میشود. تابع بهجای اینکه روی یک نوع داده مشخص قرار بگیرد، داده مورد نظر را بهعنوان ورودی دریافت میکند و نتیجه را برمیگرداند. برای نمونه، تابع len() میتواند تعداد کاراکترهای یک رشته، تعداد اعضای یک لیست یا تعداد کلیدهای یک دیکشنری را محاسبه کند؛ چرا که برای یک نوع داده خاص طراحی نشده است. در مقابل متدی مانند append() فقط برای لیستها قابل استفاده است و اگر آن را روی یک رشته اجرا کنید، با خطا مواجه خواهید شد.
مثال:
text = “python”
numbers = [3, 1, 2]
استفاده از متد
print(text.upper()) # PYTHON
numbers.sort()
print(numbers) # [1, 2, 3]
استفاده از تابع
print(len(text)) # 6
print(len(numbers)) # 3
این مثال را در مفسر پایتون اجرا کنید و مقدارها را تغییر دهید تا دقیقتر متوجه شوید هر متد چگونه رفتار میکند. بهترین راه برای تسلط روی متدها، تست کردن آنها با ورودیهای مختلف است.
متد مخصوص در پایتون چیست؟
در کنار متدهای معمولی، پایتون گروهی از متدها را با نام متدهای مخصوص (Special Methods) یا Magic Methods در اختیار برنامهنویس قرار میدهد. این متدها با دو خط زیرین در ابتدا و انتهای نام خود نوشته میشوند؛ مانند __init__، __str__ و __len__. پایتون در شرایط خاص این متدها را بهصورت خودکار فراخوانی میکند و به همین دلیل نقش مهمی در رفتار کلاسها و اشیاء دارند.
شناختهشدهترین متد مخصوص، __init__ است که هنگام ساخت یک شی جدید از کلاس اجرا میشود. از این متد برای مقداردهی اولیه ویژگیهای شی استفاده میکنند تا هر نمونه پس از ایجاد، مقادیر موردنیاز خود را داشته باشد.
مثال:
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
student = Student(“Ali”, 20)
print(student.name) # Ali
print(student.age) # 20
در این مثال، متد __init__ بهمحض ایجاد شی student اجراشده و مقادیر name و age را برای آن تنظیم میکند. درک متدهای مخصوص و مفاهیم شیگرایی مثل __init__ فقط شروع کار است. اگر میخواهید پایتون را بهصورت اصولی و پروژهمحور یاد بگیرید، یادگیری کلاسها و OOP ضروری است. برای یک مسیر ساختارمند و حرفهای، میتوانید از دوره آموزش پایتون و شیگرایی مکتبخونه استفاده کنید تا این مفاهیم را کامل و کاربردی یاد بگیرید.
متدهای رشته (String Methods)
رشتهها (String) یکی از پرکاربردترین انواع داده در پایتون هستند و متدهای متنوعی برای پردازش و تغییر متن در اختیار شما قرار میدهند. با استفاده از این متدها میتوانید حروف را بزرگ یا کوچک کنید، بخشی از متن را جستوجو کنید، همچنین تعداد تکرار یک عبارت را بهدست آورید یا فاصلههای اضافی ابتدا و انتهای رشته را حذف کنید.
در جدول زیر، تعدادی از مهمترین متدهای رشته را مشاهده میکنید:
| متد | کاربرد |
| capitalize() | اولین حرف رشته را بزرگ و سایر حروف را کوچک میکند. |
| upper() | تمام حروف رشته را به حروف بزرگ تبدیل میکند. |
| lower() | تمام حروف رشته را کوچک میکند. |
| find() | محل اولین وقوع یک کاراکتر یا عبارت را پیدا میکند. |
| count() | تعداد دفعات تکرار یک کاراکتر یا عبارت را برمیگرداند. |
| strip() | فاصلههای ابتدا و انتهای رشته را حذف میکند. |
| replace() | بخشی از متن را با مقدار جدید جایگزین میکند. |
| split() | رشته را بر اساس یک جداکننده به لیستی از بخشها تبدیل میکند. |
مدیریت لیستها با متدهای اختصاصی (List Methods)
لیستها (List) از پرکاربردترین ساختارهای داده در پایتون هستند و مجموعهای از متدهای اختصاصی را برای مدیریت عناصر در اختیار شما قرار میدهند. با این متدها میتوانید دادههای جدید اضافه کنید، عناصر را حذف یا جابهجا کنید، ترتیب آنها را تغییر دهید و لیست را بهسادگی مدیریت کنید.
در جدول زیر، مهمترین متدهای لیست را مشاهده میکنید:
| متد | کاربرد |
| append() | یک مقدار جدید را به پایان لیست اضافه میکند و ساختار لیست را بهروزرسانی میکند. |
| insert() | عنصر جدید را در موقعیت مشخصی از لیست قرار میدهد. |
| pop() | یک عنصر را از لیست خارج میکند و همان مقدار حذفشده را بهعنوان خروجی برمیگرداند. |
| remove() | اولین عنصر با مقدار مشخص را از لیست حذف میکند. |
| sort() | عناصر لیست را بهصورت صعودی یا نزولی مرتب میکند. |
| reverse() | ترتیب عناصر لیست را معکوس میکند. |
| extend() | عناصر یک لیست یا مجموعه دیگر را به انتهای لیست اضافه میکند. |
| clear() | تمام عناصر لیست را حذف میکند. |

متدهای دیکشنری و کار با کلید-مقدار
دیکشنریها در پایتون برای زمانی استفاده میشوند که بخواهیم دادهها را به شکل «کلید و مقدار» ذخیره کنیم؛ یعنی هر مقدار با یک شناسه مشخص در کنار خودش قرار میگیرد. این ساختار باعث میشود دسترسی به دادهها سریع و دقیق باشد؛ اما برای کار حرفهای با آن باید متدهای اصلی دیکشنری را بشناسید.
متدهای مهم دیکشنری
- keys(): تمام کلیدهای موجود در دیکشنری را بهصورت یک مجموعه قابل پیمایش برمیگرداند.
- values(): فقط مقادیر ذخیرهشده در دیکشنری را بدون کلیدها نمایش میدهد.
- items(): هر کلید و مقدار را به صورت یک جفت (tuple) برمیگرداند و معمولا برای حلقهزدن روی دیکشنری استفاده میشود.
- pop(): یک کلید مشخص را از دیکشنری حذف میکند و مقدار مربوط به آن را برمیگرداند. اگر کلید وجود نداشته باشد، خطا میدهد (مگر اینکه مقدار پیشفرض تعریف شود).
با استفاده از این متدها، دیکشنریها از یک ساختار ساده ذخیره داده به یک ابزار قابل کنترل برای استخراج، پردازش و مدیریت اطلاعات تبدیل میشوند.
متدهای تاپل و مجموعه (Tuple & Set)
تاپلها (Tuple) و مجموعهها (Set) دو ساختار داده مهم در پایتون هستند که هر کدام رفتار متفاوتی دارند. تاپلها غیر قابل تغییر (Immutable) هستند و بیشتر برای دادههای ثابت استفاده میشوند؛ درحالیکه مجموعهها قابل تغییر (Mutable) بوده و برای مدیریت دادههای بدون تکرار و انجام عملیات ریاضی روی مجموعهها کاربرد دارند. هرکدام از این ساختارها متدهای خاص خود را دارند که کار با آنها را سادهتر میکند.
- متدهای مهم تاپل
- count(): تعداد دفعات تکرار یک مقدار مشخص را در تاپل برمیگرداند.
- متدهای مهم مجموعه (Set)
- add(): یک عنصر جدید به مجموعه اضافه میکند (اگر از قبل وجود نداشته باشد).
- discard(): یک عنصر را از مجموعه حذف میکند؛ اگر عنصر وجود نداشته باشد، خطا نمیدهد.
- union(): اجتماع دو مجموعه را برمیگرداند و تمام عناصر غیرتکراری هر دو مجموعه را ترکیب میکند.
- difference(): اختلاف دو مجموعه را برمیگرداند؛ یعنی عناصری که فقط در مجموعه اول وجود دارند.
برای درک بهتر این متدها، چند مثال مختلف در محیط Python Shell یا Jupyter Notebook اجرا کنید؛ تغییردادن ورودیها کمک میکند رفتار هر متد را سریعتر درک کنید.
توابع داخلی پرکاربرد (Built-in Functions)
در پایتون علاوهبر متدها، مجموعهای از توابع داخلی (Built-in Functions) وجود دارند که بهصورت آماده در اختیار شما قرار میگیرند و بدون نیاز به تعریف، در هر بخش از برنامه قابل استفاده هستند. این توابع معمولا با متدها اشتباه گرفته میشوند؛ اما تفاوت مهمی دارند، توابع داخلی به یک شی خاص وابسته نیستند و بهصورت مستقل عمل میکنند.
مهمترین توابع داخلی
- len(): طول یک داده (مثل رشته، لیست یا دیکشنری) را برمیگرداند.
- type(): نوع داده یک متغیر را مشخص میکند.
- all(): اگر تمام عناصر یک iterable مقدار True داشته باشند، مقدار True برمیگرداند.
- any(): اگر حداقل یکی از عناصر مقدار True داشته باشد، نتیجه True خواهد بود.
خلاصه عملکرد متدهای پرکاربرد پایتون
در این بخش، برای جمعبندی و مقایسه سریع، خلاصهای از مهمترین متدهایی که در طول مقاله بررسی شد ارائه میشود. این جدول کمک میکند در یک نگاه بفهمید هر متد روی چه نوع دادهای کار میکند، چه وظیفهای دارد و آیا داده اصلی را تغییر میدهد یا خیر.
| نام متد | نوع داده | عملکرد کوتاه | تغییر در داده اصلی |
| upper() | String | تبدیل تمام حروف به بزرگ | ❌ |
| strip() | String | حذف فاصلههای ابتدا و انتها | ❌ |
| find() | String | پیداکردن موقعیت یک مقدار | ❌ |
| append() | List | اضافهکردن عنصر به انتهای لیست | ✔ |
| insert() | List | افزودن عنصر در موقعیت مشخص | ✔ |
| pop() | List | حذف و برگرداندن یک عنصر | ✔ |
| sort() | List | مرتبسازی لیست | ✔ |
| reverse() | List | برعکس کردن ترتیب لیست | ✔ |
| keys() | Dictionary | گرفتن کلیدها | ❌ |
| values() | Dictionary | گرفتن مقادیر | ❌ |
| items() | Dictionary | گرفتن جفت کلید-مقدار | ❌ |
| add() | Set | افزودن عضو جدید | ✔ |
| discard() | Set | حذف عضو بدون خطا | ✔ |
| union() | Set | اجتماع دو مجموعه | ❌ |
| difference() | Set | اختلاف دو مجموعه | ❌ |
سوالات متداول درباره متدهای پایتون
تفاوت اصلی متد و تابع در پایتون چیست؟
توابع بهصورت مستقل فراخوانی میشوند و به نوع داده خاصی وابسته نیستند (مثل len(x))؛ اما متدها همیشه به یک شی مشخص تعلق دارند و با استفاده از نقطه اجرا میشوند (مثل x.sort()).
چرا برخی متدها مثل reverse() مقدار None برمیگردانند؟
این متدها عملیات را مستقیما روی خود شی انجام میدهند (In-place) و برای صرفهجویی در حافظه، نسخه جدیدی ایجاد نمیکنند.
تفاوت remove() و discard() در متدهای Set چیست؟
هر دو برای حذف عضو استفاده میشوند؛ اما اگر عضو در مجموعه نباشد، remove خطا میدهد درحالیکه discard هیچ خطایی ایجاد نمیکند.
آیا متدهای رشته، متن اصلی را تغییر میدهند؟
خیر، چون رشتهها در پایتون تغییرناپذیر (Immutable) هستند، متدها همیشه یک نسخه جدید از متن را با تغییرات درخواستی برمیگردانند.

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