پرسش

چگونه می‌توان به یک نمونه (instance) از یک شیء در پایتون یک متد اضافه کرد؟

How can I add a method to an existing object instance in Python?

چطور میتونم در پایتون به یک شیء از یک کلاس بدون تغییر کلاس اصلی، یه متد جدید اضافه کنم؟

1403/06/07
پاسخ
رضا دولتی عاشق برنامه نویسی و هوش مصنوعی!
بیوگرافی رضا دولتی

برای اضافه کردن یک متد جدید به یک نمونه از یک شیء در پایتون، می‌توانید از انواع روش‌ها استفاده کنید. یکی از ساده‌ترین راه‌ها این است که متد را به صورت مستقیم به شیء اضافه کنید. این کار به کمک تعریف یک تابع و سپس اضافه کردن آن به نمونه انجام می‌شود.

توی این مثال، یک کلاس ساده به نام MyClass داریم. بعد میخوایم یک متد جدید به نمونه‌ای از این کلاس اضافه می‌کنیم:

class MyClass:
    def __init__(self, value):
        self.value = value
# Create an instance of MyClass
obj = MyClass(10)
# Define a new method
def new_method(self):
    return self.value * 2
# Add the new method to the instance
import types
obj.new_method = types.MethodType(new_method, obj)
# Call the new method
print(obj.new_method())  # Output: 20
  1. ایجاد تابع جدید: اول یک تابع جدید به نام new_method تعریف می‌کنیم. این تابع به عنوان متد جدید ما میشه.
  2. اضافه کردن متد به شیء: با استفاده از types.MethodType متد جدید را به نمونه اضافه می‌کنیم. این تابع تضمین می‌کنه که متد اضافه‌شده به شیء مثل یک متد اصلی در کلاس رفتار می‌کنه.
  3. فراخوانی متد جدید: در نهایت، متد جدید را مانند هر متد دیگری که در کلاس تعریف شده، فراخوانی می‌کنیم.
پاسخ: 1403/06/07
آخرین آپدیت: 1403/08/17