العربية
فتح في Telegram

سلسلة def apply_twice(func, arg):

23 رسالة · –
M
def apply_twice(func, arg): return func(func(arg)) def add_five(x): return x + 5 print(apply_twice(add_five, 10)) سلام خط دوم و اخر رو میشه توضیح بدید
  1. A
    دوبار بهش پنجتا اضافه میکنه فک کنم
  2. A
    print(apply_twice(add_five, 10))= adad_five(adad_five(10))
  3. M
    قبل اینکه سوالت رو جواب بدم یه توضیح مختصر نیاز هست بدم در مورد پایتون. در پایتون همه چیز ابجکت هست و در واقع استرینگ ، لیست، و توابع و حتی خود ابجکت هم ابجکت هست😯(یکم این قسمت پیادسازی پایتون فلسفی هست). پس در واقع وقتی داریم یه تابع مینویسیم، در حال ساختن یک ابجکت از نوع و کلاس تابع هستیم. در نتیجه تمامی متدها، متغییرها و ویژگی‌های این کلاس رو میتونیم توی تابعی که ساختیم استفاده کنیم. این قابلیت باعث میشه تابع توی پایتون صرفا تابع نباشه و یک غول قوی باشه که خیلی کارها رو بتونیم باهاش انجام بدیم. مثلا با *arg و **kwargs که در واقع متعلق به کلاس تابع هست، میتونیم به تابعی که ساختیم، تعداد نامحدودی متغیر و لیست و دیکشنری پاس بدیم. یکی دیگه از قابلیتهای تابع این هست که میتونی تابع به تابع پاس بدی. (دقیقا با توجه به همین توضیحاتی که گفتم بهت) توی خط اول دو تا متغییر تعریف کردی و توی خط دوم یکی از متغییر رو به عنوان متغییر برای تابعی که از متغییر اول میسازی تعریف کردی و retrun این تابع رو دوباره به عنوان ورودی همون تابع که از متغییر میسازی دوباره استفاده کردی. با این کار در واقع هر تابعی که به عنوان متغییر به تابعت پاس میدی ۲ بار ران میشه. البته این دو خط کدت رو : def apply_twice(func, arg): return func(func(arg)) میشد ساده تر هم نوشت : def apply_twice( func, arg): first_run = func(arg) second_run = func(first_run) return second_run حالا وقتی این تابع رو تعریف کردی: def add_five(x): return x + 5 و خواستی تابعت رو پاس بدی به اون تابع که بالا تعریف کردی میگی: print(apply_twice(add_five, 10)) که در واقع دو بار تابع add_five داخل شکم apply_twice ران میشه و دو تا پنج به عدد ۱۰ اضافه میشه و سپس چاپ میشه. #RA #function #OOP_In_Python
    1. M
      خیلی زحمت کشیدی ممنون❤️❤️❤️❤️❤️❤️
      1. M
        قربونت داداش ایشالا کارت رو راه انداخته باشه
          1. M
            ببین الان حله اگه درگیری که بیا پیوی توضیح بدم بازم
      1. M
        قربونت داداش. یه خورده مباحث عمیق در فسلفه پایتون هم داشت 😂
        1. ડ
          از حوصله ای که برا جواب دادن اونم با فلسفه 😁 خوشم اومدم واقعا
        1. S
          ملصق
          sticker.webp · 16 ك.ب · انقر للعرض
          😐
          1. M
            آقا اوج نامردیه شما استیکر بزاری ما نه ☹☹😭😭
      1. M
        ClassName.methodName( ); Is that what u say?
        1. M
          نه منظورشون این هست که توی خود پیاده سازی زبان پایتون OOP به صورت ۱۰۰ درصد رعایت شده و هر چیزی که توی پایتون هست یه ابجکت هست. کلاس ها هم خودشون ابجکت هستند. و همه چیز توی پایتون ابجکتی از کلاس فوق خودش هست و این قضیه ادامه پیدا میکنه تا اینکه به چیزی میرسند که خودش اون عنصر اولیه توی پایتون هست (دقیقاتر و درست تر بخوام بگم: همه چیز به یک چیز میرسه توی پایتون که یک وجهه و ماهیت ابجکتی و یک وجهه و ماهیت تایپی هست)
PPython + Linux ExpertsPython + Linux Experts@PythonLinuxExperts · مجموعة · التقنية
4 287أعضاء21يكتبون خلال 30 يومًا
خلاصة المجتمع فتح في Telegram

خلاصة عامة مفتوحة من فهرس البحث ChatCrawler — «Google لـ Telegram العام»؛ تُحدَّث كلما زحفنا إلى المجتمع. الأوقات بتوقيت UTC.

محتوى عام فقط، وAPI Telegram الرسمي. عن المشروع · الأسئلة الشائعة · حدود الفهرس · إزالة صفحة · الدليل · بحث · كيف نحسب