بر همین اساس ما یه تابع که آبجکت هست رو میتونم مثل هر ابجکت دیگه ای بریزیم توی یه متغیر دیگه یه نگاه به این کد بندازید
def yell(text):
return text.upper() + '!'
>>> yell("cleverdevs")
CLEVERDEVS
حالا میایم این تابع رو میریزیم توی یه تابع دیگه
bark = yell
>>> bark('mammad')
MAMMAD
دیدم که فانکشن دوم هم مث اولی درست حسابی کار میکنه اما اگه بیایم فانکشن اصلی رو با کلیدواژه del پاک کنیم چی میشه ؟
>>> del yell
>>> yell('hello?')
NameError: "name 'yell' is not defined"
>>> bark('hey')
'HEY!'
حالا پایتون میاد و به هر فانکشنی که میسازید یه هویت میده که میتونید با اتریبیوت name بهش دسترسی داشته باشید
>>> bark.__name__
'yell'
همونطور که میبینید هویت فانکشن bark همون yell شد چون که دقیقا یه ابجکت رو کپی کردیم رو متغیر جدید پس اتریبیوت هاش هم تغییری نکردن
اما با اینکه name اسم فانکشن اصلی رو برمیگردونه تغییر تو نحوه صدا زدن فانکشن bark برامون ایجاد نمیشه
درواقع name برای دیباگ کردن بدرد میخوره
#python
@CleverDevs - @CleverDevsGp