توابع پایتون درجه یک هستند
توابع پایتون اشیاء درجه یک هستند. می توانید آنها را به متغیرهای متغیر اختصاص دهید، آنها را در ساختارهای داده ذخیره کنید، آنها را به عنوان آرگومان به دیگران منتقل کنید استفاده شهودی از این مفاهیم باعث میشود که ویژگیهای پیشرفته تبلیغاتی در پایتون مانند لامبدا و دکوراتورها را درک کنید. آسان تر. همچنین شما را در مسیری به سمت برنامه نویسی کاربردی قرار می دهد تکنیک. توابع، و حتی آنها را به عنوان مقادیر از توابع دیگر برمی گرداند. در چند صفحه بعدی شما را از طریق تعدادی مثال راهنمایی خواهم کرد تا به شما در توسعه این درک شهودی کمک کند. نمونه ها خواهد شد روی هم بسازید، بنابراین ممکن است بخواهید آنها را به ترتیب بخوانید و حتی برخی از آنها را در یک جلسه مفسر پایتون به عنوان شما امتحان کنید سر خود را در اطراف مفاهیمی که در اینجا مورد بحث قرار خواهیم داد، بپیچید ممکن است کمی بیشتر از آنچه انتظار دارید طول بکشد. نگران نباشید – همین است کاملا عادی من اونجا بودم. ممکن است احساس کنید که هستید سر خود را به دیوار بکوبید، و ناگهان همه چیز خواهد شد همراه باشید در طول این فصل من از این تابع فریاد برای اهداف نمایشی استفاده خواهم کرد. این یک نمونه اسباب بازی ساده است که به راحتی قابل تشخیص است خروجی:def yell(text): «کلیک کنید» و وقتی آماده شدید در جای خود قرار بگیرید. >>> yell(‘hello’) ‘HELLO!’توابع اشیا هستند return text.upper() + ‘!’ تمام داده ها در یک برنامه پایتون با اشیاء یا روابط نشان داده می شوند بین اشیاء. 1 چیزهایی مانند رشته ها، لیست ها، ماژول ها و توابع پایتون. آنها همچنین فقط اشیاء هستند. همه اشیا هستند هیچ چیز خاصی در مورد توابع در وجود ندارد از آنجایی که تابع yell یک شی در پایتون است، می توانید آن را به آن اختصاص دهید متغیر دیگری، درست مانند هر شی دیگری:این خط تابع را فراخوانی نمی کند. شی تابعی که با yell ارجاع داده می شود را می گیرد و نام دوم، bark را ایجاد می کند که به آن اشاره می کند. شما اکنون همچنین می تواند همان شی تابع زیربنایی را با فراخوانی اجرا کند bark:>>> bark(‘woof’) >>> bark = yell ‘WOOF!’اثبات بیشتر: می توانید نام اصلی تابع (فریاد زدن) را حذف کنید. از آنجا که نام دیگری (پوست) همچنان به تابع زیرین اشاره می کند، شما می توانید همچنان تابع را از طریق آن فراخوانی کنید:>>> del yell اشیاء تابع و نام آنها دو نگرانی جداگانه هستند. اینجاست NameError: “name ‘yell’ is not defined” >>> yell(‘hello?’) ‘HEY!’به هر حال، پایتون یک شناسه رشته را به هر تابع در متصل می کند زمان ایجاد برای اهداف اشکال زدایی شما می توانید به این داخلی دسترسی داشته باشید شناسه با ویژگی name:>>> bark.__name__ >>> bark(‘hey’) ‘yell’اکنون، در حالی که name تابع هنوز «فریاد» است، این تاثیری ندارد شناسه صرفاً کمکی برای رفع اشکال است. متغیری که به یک تابع اشاره می کند و خود تابع واقعاً دو نگرانی جداگانه هستند.چگونه می توانید از کد خود به شی تابع دسترسی پیدا کنید. نام
قوانین ارسال دیدگاه در سایت