کتاب Object-Oriented Python یا شیگرایی در پایتون، یک منبع تخصصی و بسیار مناسب برای افراد علاقهمند به زبان برنامهنویسی پایتون میباشد که درک آنها را از شیگرایی به حد مطلوبی خواهد رساند. این کتاب در 17 فصل به آموزش زبان پایتون و نکات مربوط به شیگرایی در آن میپردازد.
در ادامه مقدمهای از کتاب Object-Oriented Python را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Object-Oriented Python:
این کتاب در مورد یک تکنیک توسعه نرمافزار به نام برنامهنویسی شیگرا (OOP) و نحوه استفاده از آن با پایتون است. قبل از OOP، برنامهنویسان از رویکردی به نام برنامهنویسی رویهای استفاده میکردند که برنامهنویسی ساخت یافته نیز نامیده میشود، که شامل ساخت مجموعهای از توابع (رویهها) و انتقال دادهها از طریق فراخوانی به آن توابع است. پارادایم OOP به برنامهنویسان راهی کارآمد برای ترکیب کد و داده در واحدهای منسجمی میدهد که اغلب قابل استفاده مجدد هستند.
در آمادهسازی برای نوشتن این کتاب، من به طور گسترده درباره ادبیات و ویدیوهای موجود تحقیق کردم و به طور خاص به رویکردهای اتخاذ شده برای توضیح این موضوع مهم و گسترده نگاه کردم. متوجه شدم که مدرسان و نویسندگان معمولاً با تعریف برخی از اصطلاحات کلیدی شروع میکنند: کلاس، متغیر نمونه، روش، کپسولهسازی، وراثت، چندشکلی و غیره.
در حالی که همه اینها مفاهیم مهمی هستند، و من همه آنها را به طور عمیق در این کتاب پوشش خواهم داد، به روشی متفاوت شروع میکنم: با در نظر گرفتن این سؤال، “چه مشکلی را حل میکنیم؟” یعنی اگر OOP راه حل است پس مشکل چیست؟
برای پاسخ به این سؤال، من با ارائه چند نمونه از برنامههای ساخته شده با استفاده از برنامهنویسی رویهای و شناسایی عوارض ذاتی این سبک شروع میکنم. سپس به شما نشان خواهم داد که چگونه یک رویکرد شیگرا میتواند ساخت چنین برنامههایی را بسیار آسانتر کند و خود برنامهها را قابل نگهداریتر کند.
کتاب Object-Oriented Python برای چه افرادی است؟
این کتاب برای افرادی در نظر گرفته شده است که قبلاً با پایتون و استفاده از توابع اولیه کتابخانه استاندارد پایتون آشنایی دارند. من فرض میکنم که شما نحو اساسی زبان را درک میکنید و میتوانید برنامههای کوچک تا متوسط را با استفاده از متغیرها، عبارات انتساب، دستورات if/elif/else، حلقهها، توابع و فراخوانی تابع، لیستها، دیکشنریها و…، را بنویسید.
اگر با همه این مفاهیم راحت نیستید، پیشنهاد میکنم که یک رونوشت از کتاب قبلی من، آموزش برنامهنویسی با پایتون 3 (Apress) را دریافت کنید و ابتدا آن را بخوانید. این یک متن سطح متوسط است، بنابراین تعدادی موضوع پیشرفتهتر وجود دارد که من به آنها اشاره نمیکنم.
به عنوان مثال، برای کاربردی نگه داشتن کتاب، من اغلب به جزئیات پیادهسازی داخلی پایتون نمیپردازم. برای سادگی و وضوح، و برای حفظ تمرکز بر تسلط بر تکنیکهای OOP، مثالها با استفاده از زیرمجموعه محدودی از زبان نوشته شدهاند. راههای پیشرفتهتر و مختصرتری برای کدنویسی در پایتون وجود دارد که از حوصله این کتاب خارج است.
من جزئیات اساسی OOP را به روشی عمدتاً مستقل از زبان پوشش خواهم داد، اما به مناطقی اشاره خواهم کرد که بین پایتون و سایر زبانهای OOP تفاوت وجود دارد. با یادگیری اصول کدنویسی به سبک OOP از طریق کتاب Object-Oriented Python، در صورت تمایل، باید بتوانید به راحتی این تکنیکها را در سایر زبانهای OOP اعمال کنید.
چگونه OOP را توضیح دهم؟
مثالهای چند فصل اول از پایتون مبتنی بر متن استفاده میکنند. این برنامههای نمونه ورودی را از کاربر دریافت میکنند و اطلاعات خروجی را صرفاً به صورت متنی به کاربر میگیرند. من OOP را با نشان دادن نحوه توسعه شبیهسازی مبتنی بر متن از اشیاء فیزیکی در کد معرفی میکنم.
ما با ایجاد نمایشهایی از کلیدهای نور، سوئیچهای دیمر و کنترل از راه دور تلویزیون به عنوان اشیا شروع میکنیم. سپس به شما نشان خواهم داد که چگونه میتوانیم از OOP برای شبیهسازی حسابهای بانکی و بانکی که بسیاری از حسابها را کنترل میکند استفاده کنیم.
هنگامی که ما اصول اولیه OOP را پوشش دادیم، ماژول pygame را معرفی میکنم، که به برنامه نویسان اجازه میدهد بازیها و برنامههایی را بنویسند که از یک رابط کاربری گرافیکی (GUI) استفاده میکنند. با برنامههای مبتنی بر رابط کاربری گرافیکی، کاربر به طور مستقیم با دکمهها، چکباکسها، فیلدهای ورودی و خروجی متن و سایر ویجتهای کاربر پسند تعامل دارد.
من استفاده از pygame را با پایتون انتخاب کردم زیرا این ترکیب به من امکان میدهد مفاهیم OOP را به روشی بسیار بصری با استفاده از عناصر روی صفحه نمایش دهم. Pygame بسیار قابل حمل است و تقریباً بر روی هر پلتفرم و سیستم عاملی اجرا میشود. تمام برنامههای نمونه ای که از بسته pygame استفاده میکنند با نسخه 2.0 pygame اخیراً منتشر شده آزمایش شدهاند.
من بستهای به نام pygwidgets ایجاد کردهام که با pygame کار میکند و تعدادی ویجت اصلی را پیادهسازی میکند که همه آنها با استفاده از رویکرد OOP ساخته شدهاند. من این بسته را بعداً در کتاب معرفی خواهم کرد و کد نمونه ای را ارائه میکنم که میتوانید اجرا کنید و با آن آزمایش کنید.
این رویکرد به شما این امکان را میدهد که نمونههای واقعی و عملی مفاهیم کلیدی شیگرا را ببینید، در حالی که این تکنیکها را برای تولید بازیهای سرگرمکننده و قابل بازی ترکیب میکند. من همچنین بسته pyghelpers خود را معرفی خواهم کرد، که کدی را برای کمک به نوشتن بازیها و برنامههای پیچیدهتر ارائه میدهد.
تمام کدهای مثال نشان داده شده در کتاب Object-Oriented Python به صورت یکبار دانلود از وب سایت No Starch در دسترس است:
- https://www.nostarch.com/object-oriented-python/
این کد همچنین به صورت فصل به فصل از مخزن GitHub من در دسترس است:
- https://github.com/IrvKalb/Object-Oriented-Python-Code/
آنچه در کتاب آمده است:
کتاب Object-Oriented Python به چهار بخش تقسیم شده است. بخش اول برنامهنویسی شیگرا را معرفی میکند:
• فصل 1 مروری بر کدگذاری با استفاده از برنامهنویسی رویهای ارائه میدهد. من به شما نشان خواهم داد که چگونه یک بازی کارتی مبتنی بر متن را پیاده سازی کنید و بانکی را که عملیات را روی یک یا چند حساب انجام میدهد شبیهسازی کنید. در طول راه، من در مورد مشکلات رایج با رویکرد رویهای بحث میکنم.
• فصل 2 کتاب Object-Oriented Python، کلاسها و اشیاء را معرفی میکند و نشان میدهد که چگونه میتوانید اشیاء دنیای واقعی مانند کلیدهای روشنایی یا کنترل از راه دور تلویزیون را در پایتون با استفاده از کلاسها نمایش دهید. خواهید دید که چگونه یک رویکرد شیگرا مشکلات برجسته شده در فصل اول را حل میکند.
• فصل 3 دو مدل ذهنی ارائه میدهد که میتوانید از آنها برای فکر کردن در مورد آنچه در پشت صحنه در هنگام ایجاد اشیاء در پایتون میگذرد استفاده کنید. ما از Python Tutor برای گذر از کد و مشاهده نحوه ایجاد اشیاء استفاده خواهیم کرد.
• فصل 4 کتاب Object-Oriented Python، یک روش استاندارد برای مدیریت چندین شی از یک نوع را با معرفی مفهوم شی مدیر شی نشان میدهد. ما شبیهسازی حساب بانکی را با استفاده از کلاسها گسترش میدهیم، و به شما نشان میدهم که چگونه با استفاده از استثناها، خطاها را مدیریت کنید.
بخش دوم کتاب Object-Oriented Python بر ساخت رابط کاربری گرافیکی با pygame تمرکز دارد:
• فصل 5 بسته pygame و مدل رویداد محور برنامهنویسی را معرفی میکند. ما چند برنامه ساده میسازیم تا شما را با قرار دادن گرافیک در پنجره و مدیریت ورودی صفحهکلید و ماوس شروع کنید، سپس یک برنامه پیچیدهتر برای پرش توپ ایجاد کنید.
• فصل 6 کتاب Object-Oriented Python، به جزئیات بسیار بیشتری در مورد استفاده از OOP با برنامههای pygame میپردازد. ما برنامه پرش توپ را به سبک OOP بازنویسی میکنیم و برخی از عناصر رابط کاربری گرافیکی ساده را توسعه میدهیم.
• فصل 7 ماژول pygwidgets را معرفی میکند که شامل پیادهسازی کامل بسیاری از عناصر استاندارد رابط کاربری گرافیکی (دکمه ها، چک باکس ها و غیره) است که هر کدام به عنوان یک کلاس توسعه یافتهاند.
بخش سوم کتاب Object-Oriented Python به اصول اصلی OOP میپردازد:
• فصل 8 کپسولهسازی را مورد بحث قرار میدهد که شامل پنهان کردن جزئیات پیادهسازی از کد خارجی و قرار دادن تمام روشهای مرتبط در یک مکان است: یک کلاس.
• فصل 9 کتاب Object-Oriented Python، چندشکلی را معرفی میکند – این ایده که چندین کلاس میتوانند متدهایی با نامهای یکسان داشته باشند – و نشان میدهد که چگونه شما را قادر میسازد تا متدها را در چندین شیء فراخوانی کنید، بدون اینکه نوع هر شی را بدانید. ما یک برنامه Shapes برای نشان دادن این مفهوم میسازیم.
• فصل 10 وراثت را پوشش میدهد، که به شما امکان میدهد مجموعهای از کلاسهای فرعی ایجاد کنید که همگی از کدهای مشترک ساخته شده در یک کلاس پایه استفاده میکنند، نه اینکه مجبور باشید چرخ را با کلاسهای مشابه دوباره اختراع کنید.
ما به چند مثال در دنیای واقعی که در آن وراثت مفید است نگاه میکنیم، مانند اجرای یک فیلد ورودی که فقط اعداد را میپذیرد، سپس برنامه مثال Shapes خود را برای استفاده از این ویژگی بازنویسی میکنیم.
• فصل 11 این بخش از کتاب Object-Oriented Python را با بحث در مورد برخی از موضوعات مهم OOP، که بیشتر به مدیریت حافظه مربوط میشود، به پایان میرساند. ما به طول عمر یک شی نگاه خواهیم کرد و به عنوان مثال یک بازی کوچک بادکنکی میسازیم.
بخش چهارم کتاب Object-Oriented Python چندین موضوع مرتبط با استفاده از OOP در توسعه بازی را بررسی میکند:
• فصل 12 نشان میدهد که چگونه میتوانیم بازی کارتی را که در فصل 1 به عنوان یک برنامه رابط کاربری گرافیکی مبتنی بر pygame توسعه یافته است، بازسازی کنیم. همچنین به شما نشان میدهم که چگونه کلاسهای Deck and Card قابل استفاده مجدد بسازید که میتوانید در بازیهای کارتی دیگری که ایجاد میکنید استفاده کنید.
• فصل 13 کتاب Object-Oriented Python زمانبندی را پوشش میدهد. ما کلاسهای تایمر مختلفی ایجاد خواهیم کرد که به برنامه اجازه میدهد در حالی که به طور همزمان محدودیت زمانی معین را بررسی میکند، به اجرا ادامه دهد.
• فصل 14 کتاب Object-Oriented Python کلاسهای انیمیشن را توضیح میدهد که میتوانید از آنها برای نشان دادن توالی تصاویر استفاده کنید. ما به دو تکنیک انیمیشن نگاه خواهیم کرد: ساخت انیمیشن از مجموعهای از فایلهای تصویری جداگانه و استخراج و استفاده از چندین تصویر از یک فایل شیت اسپرایت.
• فصل 15 کتاب Object-Oriented Python مفهوم ماشین حالت را توضیح میدهد که جریان برنامههای شما را نشان میدهد و کنترل میکند و یک مدیر صحنه که میتوانید از آن برای ساختن یک برنامه با چندین صحنه استفاده کنید. برای نشان دادن استفاده از هر یک از اینها، ما دو نسخه از یک بازی Rock, Paper, Scissors را میسازیم.
• فصل 16 کتاب Object-Oriented Python انواع مختلف گفتگوهای مودال را مورد بحث قرار میدهد که یکی دیگر از ویژگیهای مهم تعامل کاربر است. سپس در ساخت یک بازی ویدیویی مبتنی بر OOP با ویژگیهای کامل به نام Dodger قدم میزنیم که بسیاری از تکنیکهای توصیفشده در کتاب Object-Oriented Python را نشان میدهد.
• فصل 17 مفهوم الگوهای طراحی را معرفی میکند، با تمرکز بر الگوی Model View Controller، سپس یک برنامه تاس انداختن ارائه میدهد که از این الگو استفاده میکند تا به کاربر اجازه دهد دادهها را به روشهای مختلف تجسم کند. با یک جمعبندی کوتاه برای کتاب به پایان میرسد.
همچنین شما میتوانید برای آموزش زبان برنامهنویسی پایتون از مقدماتی تا پیشرفته از کتاب Learn Python Programming نیز استفاده نمائید.
سرفصلهای کتاب Object-Oriented Python:
- Acknowledgments
- Introduction
- PART I: INTRODUCING OBJECT-ORIENTED PROGRAMMING
- Chapter 1: Procedural Python Examples
- Chapter 2: Modeling Physical Objects with Object-Oriented Programming
- Chapter 3: Mental Models of Objects and the Meaning of “self”
- Chapter 4: Managing Multiple Objects
- PART II: GRAPHICAL USER INTERFACES WITH PYGAME
- Chapter 5: Introduction to Pygame
- Chapter 6: Object-Oriented Pygame
- Chapter 7: Pygame GUI Widgets
- PART III: ENCAPSULATION, POLYMORPHISM, AND INHERITANCE
- Chapter 8: Encapsulation
- Chapter 9: Polymorphism
- Chapter 10: Inheritance
- Chapter 11: Managing Memory Used by Objects
- PART IV: USING OOP IN GAME DEVELOPMENT
- Chapter 12: Card Games
- Chapter 13: Timers
- Chapter 14: Animation
- Chapter 15: Scenes
- Chapter 16 Full Game: Dodger
- Chapter 17 Design Patterns and Wrap-Up
- Index
فایل کتاب Object-Oriented Python را میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.