آدرس : تهران میدان فردوسی خیابان ایرانشهر بین سمیه و طالقانی مجتمع تجاری میلاد واحد 9

پشتیبانی 24 ساعته : 02188867940 – 09927674217

برای مشاهده لیست علاقه مندی ها وارد شوید!

مشاهده محصولات فروشگاه
0

هیچ محصولی در سبد خرید نیست.

توابع را می توان تودرتو کرد

دسته بندی :اخبار سایت 19 فوریه 2023 علیرضا بابامرادی 323

شاید تعجب آور باشد که پایتون اجازه می دهد توابع در داخل تعریف شوند توابع دیگر اینها اغلب توابع تو در تو یا توابع درونی نامیده می شوند. در اینجا یک مثال است:def whisper(t): def speak(text): return t.lower() + ‘…’ >>> speak(‘Hello, World’) ‘hello, world…’حالا اینجا چه خبر است؟ هر بار که صحبت می کنید، a را تعریف می کند عملکرد داخلی جدید زمزمه می کند و بلافاصله پس از آن آن را فرا می خواند. من مغز در اینجا فقط کمی شروع به خارش می کند، اما در مجموع، این موضوع هنوز نسبتاً ساده است. با این حال، ضربه زننده این است – زمزمه در خارج از صحبت وجود ندارد:>>> whisper(‘Yo’) NameError: return whisper(text) “name ‘whisper’ is not defined” AttributeError: >>> speak.whisper “‘function’ object has no attribute ‘whisper'” اما اگر واقعاً بخواهید به آن تابع whisper تو در تو دسترسی داشته باشید چه می‌کنید از بیرون صحبت می کنند؟ خب، توابع اشیا هستند—شما می توانید آن را برگردانید به عنوان مثال، در اینجا یک تابع است که دو تابع داخلی را تعریف می کند. بسته به آرگومان ارسال شده به تابع سطح بالا، آن را انتخاب و برمی گرداند یکی از عملکردهای درونی برای تماس گیرنده:def get_speak_func(volume): تابع داخلی به تماس گیرنده تابع والد. return text.lower() + ‘…’ def whisper(text): def yell(text): if volume > 0.5: return text.upper() + ‘!’ return yell return whisperتوجه کنید که چگونه get_speak_func در واقع هیچ یک از درونی خود را صدا نمی کند توابع – به سادگی تابع داخلی مناسب را بر اساس انتخاب می کند آرگومان volume و سپس شی تابع را برمی گرداند:>>> get_speak_func(0.3) <function get_speak_func.<locals>.whisper at 0x10ae18> >>> get_speak_func(0.7) <function get_speak_func.<locals>.yell at 0x1008c8>البته، سپس می توانید ادامه دهید و تابع برگشتی را نیز فراخوانی کنید به طور مستقیم یا با اختصاص دادن آن به نام متغیر ابتدا:>>> speak_func = get_speak_func(0.7) >>> speak_func(‘Hello’) ‘HELLO!’بگذارید برای یک ثانیه در اینجا فرو برود… این بدان معناست که نه تنها می تواند کار کند رفتارها را از طریق استدلال بپذیرند اما می توانند رفتارها را نیز برگردانند. چقدر باحاله؟ میدونی چیه، اینجا همه چیز کم کم داره سردرگم میشه. من دارم میروم قبل از ادامه نوشتن، یک استراحت کوتاه قهوه داشته باشم (و پیشنهاد می کنم شما هم همین کار را بکنید).توابع می توانند حالت محلی را ضبط کنند else: شما فقط دیدید که چگونه توابع می توانند شامل توابع درونی باشند، و اینطور است حتی امکان برگرداندن این توابع داخلی (در غیر این صورت پنهان) وجود دارد اکنون بهتر است کمربند ایمنی خود را ببندید زیرا کمی دیوانه تر می شود هنوز – ما در آستانه ورود به قلمرو برنامه نویسی کاربردی حتی عمیق تر هستیم. (شما آن استراحت قهوه را داشتید، درست است؟) توابع نه تنها می توانند توابع دیگر، این توابع درونی را برگردانند همچنین می تواند برخی از حالت های تابع والد را ضبط کرده و با آن حمل کند آنها را خب این یعنی چی؟تابع والد

علیرضا بابامرادی

راه آسان‌تری برای ارتباط با کاربران‌مان پیدا کرده‌ایم :) عضویت در کانال

مطالب زیر را حتما بخوانید:

قوانین ارسال دیدگاه در سایت

  • چنانچه دیدگاهی توهین آمیز باشد تایید نخواهد شد.
  • چنانچه دیدگاه شما جنبه ی تبلیغاتی داشته باشد تایید نخواهد شد.
  • چنانچه از لینک سایر وبسایت ها و یا وبسایت خود در دیدگاه استفاده کرده باشید تایید نخواهد شد.
  • چنانچه در دیدگاه خود از شماره تماس، ایمیل و آیدی تلگرام استفاده کرده باشید تایید نخواهد شد.
  • چنانچه دیدگاهی بی ارتباط با موضوع آموزش مطرح شود تایید نخواهد شد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

لینک کوتاه:
0