توابع به عنوان شئ

  • مدرس: علی بیگدلی
  • تاریخ انتشار: Aug 24, 2020

توابع به عنوان شئ

اگرچه آنها به صورت متفاوتی از متغیرهای عادی ایجاد می شوند، توابع مانند هر نوع دیگری در پایتون دارای ارزش هستند. می توانند به متغیر ها بست داده شوند و یا دوباره مقدار دهی شوند و مجدد در قسمت دیگری از کد فرا خوانده شوند.

def multiply(x, y):
   return x * y

a = 4
b = 7
operation = multiply
print(operation(a, b))

خروجی:

>>>
28
>>>

نکته: مثال بالا توابع را به یک عملیات متغیر اختصاص داده است. در حال حاضر، نام عملیات نیز می تواند برای انجام عملیات صدا زده شود و مورد استفاده قرار گیرد. توابع نیز می توانند بعنوان استدلال های دیگر توابع استفاده شوند.

def add(x, y):
  return x + y

def do_twice(func, x, y):
  return func(func(x, y), func(x, y))

a = 5
b = 10

print(do_twice(add, a, b))

خروجی:

>>>
30
>>>

نکته: همانطور که می بینید تابع do_twice یک تابع دیگر را به عنوان آرگومان ورودی دریافت می کند و در بدنه کد خود استفاده می کند.

ثبت دیدگاه
نام *
ایمیل*
دیدگاه *
15دیدگاه
  • Tizpa
    1 year, 7 months ago

    بعضی ساختار پایتون شبیه به بیماریه مازوخیرمه

  • kasra kianara
    1 year, 7 months ago

    سلام مهندس.من یک سوال داشتم ازتون.ببخشید میشه لطفا توضیح بدید فاصله کد ها رو چجوری بفهمیم
    مثلا:
    1.if a=a (print...)
    else
    if b=b(print...)
    یا
    2. if a=a(print...)
    else
    if b=b(print...)

    • علی بیگدلی
      1 year, 7 months ago

      منظورت indent هستش؟ معمولا pylint توی ویرایشگر vscode می تونه بهتون کمک کنه

  • $taha$
    2 years, 3 months ago

    سلام من توابع به عنوان شیئ رو درست متوجه نشدم مثلا اینکه چجوری فانک بجای ادد هست و اینکه پرانتز جلو اسم تابع رو بهتر توضیح دهید
    مرسی

    • علی بیگدلی
      2 years, 3 months ago

      هر تابعی که به یک متغیر متصل می کنید تبدیل به یک نگهدارنده شئ تابع میشه و با صدا زدن اسم متغیر در حقیقت تابع را فراخوانی می کنید. در نظر داشته باشید که مورد مشابه در برنامه نویسی شئ گرا اتفاق میافته

  • mohammad reza gholami
    2 years, 6 months ago

    عاااااااالییییی😍

    • علی بیگدلی
      2 years, 6 months ago

      متشکرم نظر لطفتونه

  • طاها1386
    2 years, 7 months ago

    سلام مهندس . ممنون میشم بگید return رو برای چی میزاریم یا من اگه

    def multiply(x,y):
    print(x*y)
    x = int(input("enter frist num1: "))
    y = int(input("enter selant num1: "))
    #operation = multiply
    print(multiply(x,y))

    این رو قرار بدم خروجی رو حراب میکینه ممنون میشم توضیح بدین

    • علی بیگدلی
      2 years, 7 months ago

      بعضی توابع عملیاتی رو که بهشون میگی میرن و انجام میدن و بازگشتی ندارن مثل اینکه بگی "کولر رو روشن کن" اما بعصی عملیات نیاز هستش که نتیجه نهایی برای عملکرد های بعدی به شما به عنوان پاسخ داده بشن مثل اینکه بگی " برو ببین چند نفر تو کلاسن و بشمر" نتیجه این عمل میشه یه عدد که return میشه به کسی که اجراش کرده و نگهداری میشهو بعد باهاش عملیات های دیگه انجام میشه

  • Mohamad Almbrd
    2 years, 7 months ago

    سلام
    ممنون از زحماتتون
    میشه توضیح بدین چجوری def رو وارد یک حلقه while true کنیم؟

    • علی بیگدلی
      2 years, 7 months ago

      اگر منظورتون تعریف تابع در داخل حلقه هستش که اصلا معقول نیست ولی اگر منظورتون اجرای تابع و به اصطلاح call کردن تابع باشه هر جایی از کد که لازم بود می تونید این کار رو انجام بدید حتی تو حلقه که عملا بعد از فاصله داخل حلقه while True می تونید هر کاری انجام بدید

    • Mohamad Almbrd
      2 years, 7 months ago

      ممنون از راهنماییتون
      استاد دوره ی آموزش Django نمیذارید؟

    • علی بیگدلی
      2 years, 7 months ago

      اول اینکه من استاد نیستم و مهندس و توسعه دهنده هستم
      و دوم اتفاقا در حال درست کردنش هستم در حال حاضر چندتا دوره ناقص موندن که همین که تموم بشه دوره آموزش query های Sql میگذارم و بعدش django

    • علی بیگدلی
      2 years, 7 months ago

      اول اینکه من استاد نیستم و مهندس و توسعه دهنده هستم
      و دوم اتفاقا در حال درست کردنش هستم در حال حاضر چندتا دوره ناقص موندن که همین که تموم بشه دوره آموزش query های Sql میگذارم و بعدش django

    • Mohamad Almbrd
      2 years, 7 months ago

      خیلی ممنون
      موفق باشید