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

  • مدرس: علی بیگدلی
  • تاریخ انتشار: 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 یک تابع دیگر را به عنوان آرگومان ورودی دریافت می کند و در بدنه کد خود استفاده می کند.

ثبت دیدگاه
نام *
ایمیل*
دیدگاه *
captcha
8دیدگاه
  • طاها1386
    3 weeks, 5 days 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))

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

    • علی بیگدلی
      3 weeks, 5 days ago

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

  • Mohamad Almbrd
    1 month ago

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

    • علی بیگدلی
      1 month ago

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

    • Mohamad Almbrd
      1 month ago

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

    • علی بیگدلی
      1 month ago

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

    • Mohamad Almbrd
      1 month ago

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