متد __new__ رو تو تاپیک:
تو کلاس متد __new__ در کلاس Singleton چه اتفاقی داره می افته؟
توضیح دادم. دیگه میدونی چیکار میکنه. (توضیح بیشتری نداره)
وقتی از __new__ استفاده میکنیم که میخواهیم تغییر تو ساخت ابجکت از کلاس بدیم مثل Singleton. کلا وقتی قبل ساخت ابجکت بخواهیم کاری انجام بدیم.
متد __call__ رو وقتی تعریف میکنیم داریم برای ابجکت هامون یه متد تعریف میکنیم که اگر ابجکتی رو صدا زدیم دستورات داخل متد __call__ اجرا میشن.
مثال
class Student:
def __call__(self, string, *args, **kwargs):
print(string)
s1 = Student()
حالا وقتی __call__ رو صدا میزنیم یا ابجکت رو صدا میزنیم فرقی نداره بهرحال متد __call__ اجرا میشه:
s1.__call__("my text") # output: my text s1("my text") # output: my text
اینکه از __call__ کجا استفاده میکنیم هم یه مثال هایی تو تاپیک زیر آوردن:
https://stackoverflow.com/questions/۵۸۲۴۸۸۱/python-call-special-method-practical-example/۵۸۲۶۲۸۳