کتاب Fluent Python یا پایتون به صورت روان، یک کتاب آموزشی زبان پایتون با پشتیبانی از نسخه 3.10 این زبان است. این کتاب در 25 فصل به آموزش گامبهگام این زبان و از مقدماتی تا نکات پیشرفته خواهد پرداخت.
در ادامه مقدمهای از کتاب Fluent Python را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Fluent Python:
طرح این است: وقتی شخصی از ویژگیای استفاده میکند که شما آن را درک نمیکنید، به سادگی به او شلیک کنید. این آسانتر از یادگیری چیزهای جدید است، و تا مدتها پیش تنها کدنویسهای زنده در زیرمجموعهای از Python 0.9.6 <wink>.1 به راحتی قابل درک و درک خواهند بود.
تیم پیترز، توسعهدهنده هسته افسانهای و نویسنده The Zen of Python
Python یک زبان برنامهنویسی قدرتمند و آسان برای یادگیری است. این اولین کلمات آموزش رسمی پایتون 3.10 است. این درست است، اما یک نکته وجود دارد: از آنجایی که یادگیری و استفاده از زبان آسان است، بسیاری از برنامه نویسان پایتون تمرینی تنها بخشی از ویژگیهای قدرتمند آن را به کار میگیرند.
یک برنامه نویس با تجربه ممکن است در عرض چند ساعت شروع به نوشتن کدهای مفید پایتون کند. همانطور که اولین ساعات پربار تبدیل به هفتهها و ماهها میشود، بسیاری از توسعه دهندگان به نوشتن کد پایتون با لهجه بسیار قوی برگرفته از زبانهایی که قبلاً آموختهاند ادامه میدهند. حتی اگر پایتون زبان اول شما باشد، اغلب در دانشگاه و در کتابهای مقدماتی ارائه میشود در حالی که با دقت از ویژگیهای خاص زبان اجتناب میشود.
به عنوان معلمی که پایتون را به برنامه نویسان با تجربه در زبانهای دیگر معرفی میکند، مشکل دیگری را میبینم که این کتاب سعی دارد به آن بپردازد: ما فقط چیزهایی را که میدانیم از دست میدهیم. از زبان دیگری، هر کسی ممکن است حدس بزند که پایتون از عبارات منظم پشتیبانی میکند و آن را در اسناد جستجو کند. اما اگر قبلاً تاپل باز کردن یا توصیفگرها را ندیدهاید، احتمالاً آنها را جستجو نخواهید کرد و ممکن است در نهایت از این ویژگیها فقط به این دلیل که مختص پایتون هستند استفاده نکنید.
کتاب Fluent Python مرجع A-to-Z جامع پایتون نیست. تأکید آن بر ویژگیهای زبانی است که یا منحصر به پایتون هستند یا در بسیاری از زبانهای رایج دیگر یافت نمیشوند. این نیز بیشتر کتابی در مورد زبان اصلی و برخی از کتابخانههای آن است. من به ندرت در مورد بستههایی صحبت خواهم کرد که در کتابخانه استاندارد نیستند، حتی اگر فهرست بسته Python اکنون بیش از 60000 کتابخانه را فهرست کرده است و بسیاری از آنها فوقالعاده مفید هستند.
این کتاب برای چه کسی است؟
کتاب Fluent Python برای تمرین برنامه نویسان پایتون که میخواهند در پایتون 3 مهارت داشته باشند نوشته شده است. من نمونهها را در پایتون 3.10 تست کردم – بیشتر آنها همچنین در پایتون 3.9 و 3.8. هنگامی که یک مثال به پایتون 3.10 نیاز دارد، باید به وضوح علامت گذاری شود.
اگر مطمئن نیستید که پایتون کافی برای دنبال کردن آن را میشناسید، موضوعات آموزش رسمی پایتون را مرور کنید. موضوعاتی که در این آموزش پوشش داده شده است، در اینجا توضیح داده نمیشوند، به جز برخی از ویژگیها که جدید هستند.
این کتاب برای چه کسی نیست؟
اگر به تازگی پایتون را یاد میگیرید، دنبال کردن این کتاب سخت خواهد بود. نه تنها این، اگر آن را خیلی زود در سفر پایتون بخوانید، ممکن است این تصور را به شما بدهد که هر اسکریپت پایتون باید از روشهای خاص و ترفندهای فرابرنامهنویسی استفاده کند. انتزاع زودرس به همان اندازه بد است که بهینه سازی زودرس.
پنج کتاب در یک
به همه توصیه میکنم فصل 1 «مدل دادههای پایتون» را بخوانند. مخاطب اصلی این کتاب نباید پس از فصل 1 مستقیماً به هر قسمت از این کتاب بپرد، اما اغلب تصور میکنم که شما فصلهای قبل را در هر بخش خاص خواندهاید. قسمتهای I تا V را به عنوان کتابهای داخل کتاب در نظر بگیرید.
من سعی کردم قبل از بحث در مورد چگونگی ساختن خود، بر استفاده از آنچه در دسترس است تأکید کنم. به عنوان مثال، در قسمت I، فصل 2 انواع توالیهایی را که آماده استفاده هستند، از جمله مواردی که توجه زیادی را به خود جلب نمیکنند، پوشش میدهد، مانند collections.deque. ساخت توالیهای تعریفشده توسط کاربر فقط در قسمت سوم مورد بررسی قرار میگیرد، جایی که ما همچنین نحوه استفاده از کلاسهای پایه انتزاعی (ABC) از collections.abc را میبینیم. ایجاد ABC خودتان حتی بعداً در قسمت سوم مورد بحث قرار میگیرد، زیرا معتقدم قبل از نوشتن ABC مهم است که راحت از ABC استفاده کنید.
این رویکرد چند مزیت دارد. اول، دانستن اینکه چه چیزی برای استفاده آماده است میتواند شما را از اختراع مجدد چرخ نجات دهد. ما از کلاسهای مجموعه موجود بیشتر از کلاسهای خود استفاده میکنیم، و میتوانیم با به تعویق انداختن بحث در مورد نحوه ایجاد ابزارهای جدید، به استفاده پیشرفته از ابزارهای موجود توجه بیشتری داشته باشیم. همچنین بیشتر احتمال دارد که از ABC های موجود ارث ببریم تا اینکه یک ABC جدید از ابتدا ایجاد کنیم. و در نهایت، من معتقدم درک انتزاعات بعد از اینکه آنها را در عمل دیدید آسانتر است.
بیشتر بخوانید: کتاب Python Programming in Context
نقطه ضعف این استراتژی، مراجع رو به جلو است که در سرتاسر فصلها پراکنده شده است. امیدوارم اکنون که میدانید چرا این راه را انتخاب کردم تحمل اینها آسانتر باشد.
نحوه تنظیم کتاب Fluent Python
در اینجا موضوعات اصلی در هر بخش از کتاب آمده است:
بخش اول، «ساختارهای داده»
فصل 1 کتاب Fluent Python مدل داده پایتون را معرفی میکند و توضیح میدهد که چرا روشهای خاص (مثلاً __repr__) کلید رفتار ثابت همه نوع اشیاء هستند. روشهای خاص با جزئیات بیشتری در سراسر کتاب پوشش داده شده است.
فصلهای باقیمانده در این بخش، استفاده از انواع مجموعهها را پوشش میدهند: دنبالهها، نگاشتها، و مجموعهها، و همچنین تقسیم str در مقابل بایتها – علت تجلیل زیاد در میان کاربران پایتون 3 و نارضایتی بسیار برای کاربران پایتون 2 که پایگاههای کد خود را مهاجرت میکنند.
بیشتر بخوانید: کتاب Hands-on Machine Learning with Python
همچنین سازندگان کلاس سطح بالا در کتابخانه استاندارد پوشش داده شدهاند: کارخانههای تاپل به نام و دکوراتور @dataclass. تطبیق الگو – جدید در پایتون 3.10 – در بخشهایی در فصلهای 2، 3 و 5 کتاب Fluent Python پوشش داده شده است که در مورد الگوهای توالی، الگوهای نگاشت و الگوهای کلاس بحث میکنند. آخرین فصل کتاب Fluent Python در قسمت اول درباره چرخه زندگی اشیاء است: ارجاعات، تغییرپذیری، و جمعآوری زباله.
بخش دوم، «توابع به عنوان اشیاء»
در اینجا ما در مورد توابع به عنوان اشیاءء درجه یک در زبان صحبت میکنیم: این به چه معناست، چگونه بر برخی از الگوهای طراحی محبوب تأثیر میگذارد، و چگونه میتوان دکوراتورهای تابع را با استفاده از بستهبندی اعمال کرد. همچنین در اینجا به مفهوم کلی فراخوانیها در پایتون، ویژگیهای تابع، دروننگری، حاشیهنویسی پارامترها و اعلان غیرمحلی جدید در پایتون 3 پرداخته میشود. فصل 8 کتاب Fluent Python، موضوع جدید اصلی نکات نوع در امضای تابع را معرفی میکند.
بخش سوم، «کلاسها و پروتکلها»
اکنون تمرکز بر ساختن کلاسها «بهصورت دستی» است – برخلاف استفاده از سازندههای کلاس که در فصل 5 کتاب Fluent Python توضیح داده شده است. مانند هر زبان شیگرا (OO)، پایتون مجموعه خاصی از ویژگیهای خود را دارد که ممکن است در این زبان وجود داشته باشد یا نباشد.
زبانی که من و شما برنامهنویسی کلاس محور را در آن یاد گرفتیم. فصلها نحوه ساخت مجموعهها، کلاسهای پایه انتزاعی (ABC) و پروتکلهای خود، و همچنین نحوه مقابله با وراثت چندگانه، و نحوه پیادهسازی بارگذاری بیش از حد اپراتور را توضیح میدهند. فصل 15 کتاب Fluent Python به پوشش نکات تایپ ادامه میدهد.
بخش چهارم، «جریان کنترل»
در این بخش از کتاب Fluent Python ساختارها و کتابخانههای زبانی که فراتر از جریان کنترل سنتی با شرطیها، حلقهها و زیر روالها هستند، پوشش داده شده است. ما با مولدها شروع میکنیم، سپس از مدیران زمینه و برنامهها، از جمله بازده جدید چالشبرانگیز اما قدرتمند از نحو بازدید میکنیم.
فصل 18 کتاب Fluent Python شامل مثال مهمی با استفاده از تطبیق الگو در یک مترجم زبان ساده اما کاربردی است. فصل 19، «مدلهای همزمانی در پایتون»، فصل جدیدی است که مروری بر گزینههای جایگزین برای پردازش همزمان و موازی در پایتون، محدودیتهای آنها، و اینکه چگونه معماری نرمافزار به پایتون اجازه میدهد در مقیاس وب کار کند، ارائه میکند. من فصل مربوط به برنامهنویسی ناهمزمان را بازنویسی کردم تا بر ویژگیهای زبان اصلی تأکید کنم – بهعنوان مثال، await، async dev، async for و async with، و نشان دهم که چگونه با asyncio و چارچوبهای دیگر استفاده میشوند.
قسمت پنجم، «فرابرنامهنویسی»
این بخش از کتاب Fluent Python با مروری بر تکنیکهای ساخت کلاسها با ویژگیهایی که بهصورت پویا برای مدیریت دادههای نیمه ساختاریافته مانند مجموعه دادههای JSON ایجاد شدهاند، شروع میشود.
در مرحله بعد، مکانیسم ویژگیهای آشنا را پوشش میدهیم، قبل از اینکه به نحوه عملکرد دسترسی ویژگی شی در سطح پایینتر در پایتون با استفاده از توصیفگرها بپردازیم. رابطه بین توابع، روشها و توصیفگرها توضیح داده شده است. در سرتاسر قسمت پنجم، اجرای گامبهگام کتابخانه اعتبارسنجی میدانی، مسائل ظریفی را آشکار میکند که به ابزارهای پیشرفته فصل آخر منتهی میشود: تزئینکنندههای کلاس و متاکلاسها.
سرفصلهای کتاب Fluent Python:
- Preface
- I. Prologue
- 1. The Python Data Model
- II. Data Structures
- 2. An Array of Sequences
- 3. Dictionaries and Sets
- 4. Text Versus Bytes
- 5. Data Class Builders
- 6. Object References, Mutability, and Recycling
- III. Functions as Objects
- 7. Functions as First-Class Objects
- 8. Type Hints in Functions
- 9. Decorators and Closures
- 10. Design Patterns with First-Class Functions
- IV. Classes and Protocols
- 11. A Pythonic Object
- 12. Writing Special Methods for Sequences
- 13. Interfaces, Protocols, and ABCs
- 14. Inheritance: For Good or For Worse
- 15. More About Type Hints
- 16. Operator Overloading: Doing It Right
- 17. Iterables, Iterators, and Generators
- 18. Context Managers and else Blocks
- 19. Classic Coroutines
- 20. Concurrency Models in Python
- 21. Concurrency with Futures
- 22. Asynchronous Programming
- 23. Dynamic Attributes and Properties
- 24. Attribute Descriptors
- 25. Class Metaprogramming
فایل کتاب Fluent Python را میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.