سبد خرید 0
  • مگاپایتون
  • آموزش پایتون
  • محصولاتداغ
  • وبلاگ

ورود

گذرواژه خود را فراموش کرده اید؟

ثبت نام

داده های شخصی شما برای پشتیبانی از تجربه شما در این وب سایت، برای مدیریت دسترسی به حساب کاربری شما و برای اهداف دیگری که در سیاست حفظ حریم خصوصی ما شرح داده می شود مورد استفاده قرار می گیرد.

  • megapython1@gmail.com
  • اخبار
0
مگاپایتون | آموزش پایتون حرفه ای
  • مگاپایتون
  • آموزش پایتون
  • محصولاتداغ
  • وبلاگ
آخرین اطلاعیه ها
جهت نمایش اطلاعیه باید وارد سایت شوید
شروع کنید
[wcas-search-form]

وبلاگ

مگاپایتون | آموزش پایتون حرفه ایاخباربرنامه نویسیآشنایی با دکوراتورها در زبان برنامه نویسی پایتون

آشنایی با دکوراتورها در زبان برنامه نویسی پایتون

ارسال شده توسط Matinus
برنامه نویسی
آموزش برنامه نویسی پایتون
5/5 - (16 امتیاز)

یکی دیگر از ویژگی های بسیار مهم زبان برنامه نویسی پایتون آن است که امکان تلفیق یک تابع با توابع دیگر را برای شما فراهم می کند.

شما با استفاده از دکوراتور ها امکان اضافه نمودن فانکشنالیتی بیشتر به یک کلاس تابع را خواهید داشت.

به این صورت که ما علاوه بر کارکرد های تابع، برخی کارکرد های خارجی را نیز می توانیم به تابع اضافه کنیم.

این روش در بسیاری از شرایط می تواند کاربردی باشد.

به عنوان مثال زمانی که تمایل دارید کد هایتان قابل استفاده مجدد باشند می توانید از دکوراتور ها استفاده نمایید.

در صورتی که بدانید دکوراتور ها در زبان برنامه نویسی پایتون به چه شیوه ای استفاده می شوند، می توانید قابلیت خوانایی کد هایتان را چند برابر کنید.

دکوراتور ها این ویژگی را دارند که بدون دسترسی مستقیم به بلاک فانکشن، رفتار تابع را تغییر داده و کد های جدیدی را به آن بیافزایند.

توجه داشته باشید که در حین یادگیری زبان برنامه نویسی پایتون لازم است به خوبی استفاده از دکوراتور ها را یاد بگیرید.

برنامه نویسانی که در فلسک و یا فریمورک click با دکوراتور ها آشنایی دارند، تنها می توانند از آن استفاده نمایند و قادر به نوشتن یک دکوراتور به تنهایی نخواهند بود.

آموزش نحوه کار دکوراتور ها در زبان برنامه نویسی پایتون

در مثال زیر یک دکوراتور را مشاهده می کنید.

@my_decorator

def hello():

    print(‘hello’)

توجه ‌داشته باشید که زمانی که یک تابع را فراخوانی می نمایید آن تابع را در واقع به یک شیء از کلاس اصلی برنامه اضافه می نمایید.

در مثال فوق تابع Hello یک شیء تابعی می باشد.

 @my_decorator خود یک تابع می باشد که امکان استفاده از شیء تابعی را دارد.

پس از دسترسی به این شیء، دکوراتور ها برای مفسر، شیء متفاوتی را ارسال می کنند .

همچنین تابعی که دکوراتور برگشت می دهد نیز به عنوان تابع hello شناخته شده است.

شما با کمک مثال زیر می توانید آن را به راحتی به ذهن خود بسپارید.

hello = decorate(hello)

در واقع hello شیء می باشد که از دکورات نمودن تابع hello به دست آمده است

با استفاده از دکوراتور ها امکان استفاده از یک تابع به عنوان ورودی را دارید اما لزومی برای خروجی فرستادن به صورت یک تابع وجود ندارد.

آموزش چگونگی ایجاد یک دکوراتور در زبان برنامه نویسی پایتون

همانطور که گفته شد دکوراتور ها تابعی می باشند که تابعی را به عنوان ورودی دریافت نموده و به یک شیء باز می گردانند.

پس برای ایجاد یک دکوراتور اولین قدم ایجاد یک تابع جدید می باشد:

def my_decorator(f):

            return 5

همچنین توجه داشته باشید که شما می توانید از هر تابعی به عنوان دکوراتور استفاده نمایید.

در مثال زیر دکوراتور یک تابع را به عنوان ورودی در خود قرار داده و شیء متفاوتی را به خروجی ارسال نموده است.

در واقع دکوراتور ها عموما یک تابع را به ورودی ارسال نموده و عدد ۵ را باز می گردانند.

در صورت اعمال دکوراتور به صورت زیر دچار خطا خواهید شد:

@my_decorator

 

def hello():

    print(‘hello’)

پیغام خطا به شرح زیر می باشد

>>> hello()

 

Traceback (most recent call last):

  File “<stdin>”, line 1, in <module>

TypeError: ‘int’ object is not callable

’int‘ object is not callable

پیغام خطا به این دلیل است که دکوراتور ها همیشه یک عدد int را باز می گردانند و این مورد نیز قابل فراخوانی یا callable نخواهد بود و قادر نخواهیم بود تا آن را به صورت یک تابع فراخوانی نماییم.

به همین دلیل جهت جلوگیری از بروز پیغام خطا لازم است چیزی را به خروجی ارسال کنید که خود به تنهایی یک تابع باشد.

به این شکل که شیء که در خود دکوراتور باز می گردد لازم است تابع باشد.

تصور کنید که تمایل به ساخت برنامه ای دارید که در هر بار فراخوانی تابعی آن را چاپ نماید.

به راحتی می توانیم به صورت زیر تابعی ایجاد کنیم.

در مثال زیر تمایل داریم که تابع با استفاده از دکوراتور به خروجی فرستاده شود.

در این شرایط نیز لازم است از تابع تو در تو استفاده نماییم:

def mydecorator(f):  # f is the function passed to us from python

    def log_f_as_called():

        print(f’{f} was called.’)

        f()

    return log_f_as_called

ما در مثال فوق توابع را به صورت تو در تو تعریف نمودیم و تابع mydecorator  خروجی تابع داخلی را ارسال می نماید.

همچنین با پیاده سازی حالت زیر می توانیم تابع hello در مثال قبل را مجدد فراخوانی نماییم:

@mydecorator

 

def hello():

    print(‘hello’)

با اجرای کد فوق نیز به خروجی زیر می رسیم:

<function hello at 0x7f27738d7510> was called.

hello

آموزش ترکیب نمودن درست توابع در زبان برنامه نویسی پایتون

ما در زبان برنامه نویسی پایتون می توانیم یک تابع را به تعداد نامحدودی دکوراتور تبدیل کنیم.

به این شکل دکوراتور ها زنجیره تأثیر و تغییر را دریافت می نمایند.

به این صورت تأثیر دکوراتور ها بر روی توابع بعد خود به شکل زنجیره اعمال شده و این روند تا پایان ادامه می یابد.

به مثال زیر توجه نمایید:

@a

@b

@c

def hello():

    print(‘hello’)

در واقع این مورد فرمول hello=a(b(c(hello))) را اجرا می نماید به به شکل زیر نیز قابل اجرا می باشد:

@mydecorator

 

@mydecorator

 

def hello():

 

    print(‘hello’)

 

>>> hello()

 

<function mydec.<locals>.a at 0x7f277383d378> was called.

 

<function hello at 0x7f2772f78ae8> was called.

 

hello

بر اساس خروجی مثال فوق متوجه می شویم که دکوراتور اول بر روی دوم تأثیر گذاشته و خط مجزایی را نیز به صورت مستقل چاپ می نماید.

کلام آخر

در این مقاله با ویژگی دیگر زبان برنامه نویسی پایتون آشنا شدیم که در کد نویسی بسیار کاربردی می باشد.

شما می توانید با کمک پکیج های آموزشی زبان برنامه نویسی پایتون در سایت مگاپایتون با ویژگی های بیشتر این زبان آشنا شوید و سریعا به کسب درآمد فراوان در این حیطه دست یابید.

 

 

آموزش پایتون | صفر تا صد

چرا باید برنامه نویس شویم؟!

دانستنی های کاربردی جهت آشنایی با زبان برنامه نویسی پایتون

زبان برنامه نویسی پایتون چه کاربرد و ویژگی هایی دارد؟

چگونه به یک برنامه نویس ماهر تبدیل شویم؟

با یادگیری چه زبانی می توانید به یک برنامه نویس ماهر تحت وب تبدیل شوید؟

آشنایی با معنای اوپن سورس و مزایای آن در برنامه نویسی

زبان برنامه نویسی پایتون در دنیای امروز چه کاربردی دارد؟

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

آموزش چگونگی شروع یادگیری زبان برنامه نویسی پایتون

شروع یادگیری زبان برنامه نویسی پایتون : آشنایی با توابع پایتون

شروع یادگیری زبان برنامه نویسی ‌پایتون : عملگر های شرطی

شروع یادگیری زبان برنامه نویسی پایتون (بخش آخر)

آشنایی با سایت های‌ آموزشی رایگان و معتبر جهت یادگیری زبان برنامه نویسی پایتون

چرا زبان برنامه نویسی پایتون به یک زبان قدرتمند تبدیل شده است؟

آشنایی با قدرت و ویژگی های فریم ورک ها در زبان برنامه نویسی پایتون

آشنایی با دیکشنری در زبان برنامه نویسی پایتون

آشنایی با پردرآمدترین زبان های برنامه نویسی سال های اخیر در ایران

چه زمانی استفاده از زبان برنامه نویسی پایتون می تواند برای شما سود آور باشد؟

چگونه وارد دنیای برنامه نویسی پایتون شویم؟

معرفی ۱۰ شرکت مشهور و رده بالا که از پایتون استفاده می کنند

چرا زبان برنامه نویسی پایتون برای تازه کاران زبان مناسبی می باشد؟

آشنایی با مفاهیم پایه و کاربردی در زبان برنامه نویسی پایتون

آشنایی با ویژگی‌های حرفه‌ای پایتون که موجب سهولت در انجام کارها می‌شود

۱۵ کتابخانه مهم و پرطرفدار در زبان برنامه‌نویسی پایتون

۱۰ کاربرد اصلی استفاده از زبان برنامه نویسی پایتون در پروژه های بزرگ سازمانی

اصلی ترین عواملی که موجب کند بودن زبان برنامه نویسی ‌پایتون شده است!

چقدر طول می‌کشد تا به برنامه‌نویسی ماهر در زبان پایتون تبدیل شویم؟

آشنایی با ۶ رویکرد کاربردی زبان برنامه نویسی ‌پایتون

آشنایی با دکوراتورها در زبان برنامه نویسی پایتون

12 مزایا و معایب زبان برنامه نویسی پایتون برای توسعه وب

مقدمه ای بر یادگیری ماشین یا ماشین لرنینگ و کاربرد های آن

یادگیری ماشین با زبان برنامه نویسی پایتون چه کاربردهایی دارد؟

آشنایی با پیش نیازهای اصلی ماشین لرنینگ

بررسی جامع انواع مدل های ماشین لرنینگ و کاربردهای آن

مهم ترین تفاوت های هوش مصنوعی و یادگیری ماشین

آشنایی با درآمد و بازار کار ماشین لرنینگ در سال 2022

آشنایی جامع با هوش مصنوعی و کاربردهای AI

آشنایی جامع با یادگیری نظارت شده در ماشین لرنینگ

6 نکته کاربردی یادگیری ماشین لرنینگ

یادگیری عمیق در ماشین لرنینگ

4 کاربرد اصلی یادگیری نظارت نشده در ماشین لرنینگ

4 کاربرد مهم ماشین لرنینگ در دیجیتال مارکتینگ

7 کاربرد ماشین لرنینگ و هوش مصنوعی در شبکه اجتماعی اینستاگرام

بررسی ۵ کاربرد جالب ماشین لرنینگ در سال ۲۰۲۲

آشنایی با سه مسیر اصلی جهت یادگیری ماشین لرنینگ

۹ کاربرد اصلی دیپ لرنینگ در زندگی روزانه

۶ ایده برای پروژه های یادگیری ماشین لرنینگ برای افراد مبتدی و تازه کار

شش زبان برنامه نویسی برتر در حوزه واقعیت مجازی

آشنایی با ۹ سرور دیسکورد برای علاقه مندان به زبان برنامه نویسی پایتون و ماشین لرنینگ

آشنایی با برترین نرم افزارهای هوش مصنوعی و کاربردهای آن

آشنایی جامع  با اصلی ترین روش های یادگیری عمیق

آشنایی جامع با تمامی مباحث و مهم ترین کاربردهای شبکه عصبی کانولوشن

آشنایی جامع‌ با درخت تصمیم و اصلی ترین کاربرد و مفاهیم آن در ماشین لرنینگ

بررسی ۷ کاربرد اصلی هوش مصنوعی در آموزش

وب سایت مگاپایتون

برچسب ها: آموزش برنامه نویسی
درباره Matinus

با ورود به کارشناسی مهندسی کامپیوتر گرایش نرم افزار از سال 1385 به دنیای زیبای آی تی وارد شدم و فوق لیسانسم رو در رشته آی تی گرایش تجارت الکترونیک از دانشگاه خواجه نصیر طوسی گرفتم. از همون دوران شروع به ساختن وب سایت ها و سئو کردن اونها کردم. زمانی که هیچ کس نمی تونست سئو چیه! یکی پس از دیگری زبان های برنامه نویسی رو تست کردم؛ مثل سی پلاس پلاس ؛ سی شارپ ؛ جاوا ؛ جاوا اسکریپت ؛ سوییفت و .... با همشون برنامه نوشتم تا رسیدم به پایتون و با توجه به تجربه خودم فهمیدم که به این زبان بیشتر علاقه دارم چون در مدت سه ماه اول 24 ساعته پشت کامپیوتر بودم و با برترین اساتید جهان پایتون خودم رو ارتقا دادم تا پس از دو سه سال در پایتون سنیور شدم و اکنون می تونم اونو تدریس کنم. آموزش پایتون من زیادی وسواس گونه و جامعه و من پشت صحنه دستورات و حافظه رو بشما می گم که هیچکس این رو به شما نمیگه.... چون بلد نیستن!!! فقط بلدن از دستورات استفاده کنن. مطمئن باش بعد از آموزش پایتون من خیلی حرف برای گفتن داری و میتونی وارد دنیای هوش مصنوعی و یادگیری ماشین و علوم داده ها بشی و یک شغل بسیار پردرآمد در خارج از کشور بگیری ......

نوشته‌های بیشتر از Matinus
قبلی آشنایی با ۶ رویکرد کاربردی زبان برنامه نویسی ‌پایتون
بعدی 12 مزایا و معایب زبان برنامه نویسی پایتون برای توسعه وب

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
دسته‌ها
  • بدون دسته بندی
  • برنامه نویسی
  • کسب و کار
  • ماشین لرنینگ
برچسب‌ها
AI DL ML آموزش برنامه نویسی

مگاپایتون مرجع دوره های پایتون برای مبتدیان تا فوق پیشرفته به زبان فارسی | آمادگی برای رشته های هوش مصنوعی و یادگیری ماشین
دسترسی سریع
  • خانه
  • دوره ها
  • اخبار
  • تماس با ما
  • تهران
خبرنامه

چیزی را از دست ندهید، ثبت نام کنید و در مورد شرکت ما مطلع باشید.
[mc4wp_form id=”380″]

© 1401. مگاپایتون
اشتراک گذاری در شبکه های اجتماعی
ارسال به ایمیل
https://megapython.ir/?p=7481
مرورگر شما از HTML5 پشتیبانی نمی کند.