با سلام.
استاد شما در ویدیو 70 وقتی خواستید برای یک کلاس child که از 2 کلاس والد ارث می برد initializer هر دو رو فراخوانی کنید، از name mangling استفاده کردید name رو به name__ تغییر دادید. در صورتی که اگر name باقی بمونه مشکلی ایجاد نمیشه و در صورت فراخوانی name، هر دو کلاس والد فراخوانی میشن. ممنون می شم توضیح بدید که چرا این کار رو کردید.
سلام دوست من
دارین اشتباه میکنین دوست عزیز
name هر دو فراخوانی نمیشه
این کد رو اجرا کنین :
class A(object):
def __init__(self):
self.name = "mohammad"
class B(object):
def __init__(self):
self.name = "milad"
class C(A, B):
def show_name(self):
print(self.name)
me = C()
me.show_name()
اگه دقت کنین در خروجی فقط کلمه ی mohammad چاپ میشه و milad نمایش داده نمیشه
پس عملا name کلاس اول رو برمیگردونه درحالی که کلاس C از هر دو ارث بری کرده