آموزش برنامه نویسی شی گرا پایتون (OOP): مبتدی تا حرفه ای

Python Object Oriented Programming (OOP): Beginner to Pro

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: Deep OOP Foundations از ابتدا مطلق برنامه نویسی شی گرا پایتون را از ابتدا با سخنرانی های عمیق و فعالیت های تمرینی یاد بگیرید از طریق 16 تکلیف پروژه مفصل کار کنید تا یادگیری خود را تمرین کنید. کلاس های خود را با رفتار، نمایش و روابط سفارشی بنویسید وراثت را درک کنید. و ارث چندگانه از جمله بهترین شیوه ها و موارد استفاده ایده آل درک ساختارهای زبان مدرن مانند کلاس های داده، شمارش ها، اسلات ها و موارد دیگر تسلط بر سبک پایتونیک کار با انواع، داخلی ها و مشتقات آنها دریافت درک عمیق از بخش های دشوارتر از جمله توصیفگرها، کلاس های پایه انتزاعی و فرابرنامه نویسی نسخه خود را از ساختارهای داده با رفتار خاص ایجاد کنید، به عنوان مثال. فهرستی که خودش را مرتب می کند، یا دیکشنری که هرگز KeyError را بالا نمی برد به طور موثر با استثناها کار کنید و سلسله مراتب استثناهای جداگانه خود را تعریف کنید پیش نیازها:یک کامپیوتر (Windows/Mac/Linux). همین! آماده شدن برای نوشتن هزاران خط کد پایتون هیچ دانش قبلی در مورد پایتون لازم نیست

به بهترین منبع آنلاین و تنها منبعی که برای یادگیری و تسلط بر برنامه نویسی شی گرا با پایتون مدرن نیاز دارید، خوش آمدید!

هیچ زمان بهتری برای یادگیری پایتون وجود نداشته است. این زبان با برنامه های کاربردی در یادگیری ماشین، توسعه وب، علم داده، اتوماسیون، توسعه بازی و بسیاری موارد دیگر به طور مداوم در 3 زبان برنامه نویسی پرتقاضا و محبوب ترین در جهان قرار دارد. و رشد آن هیچ نشانه ای از توقف را نشان نمی دهد.

اما در حالی که منابع زیادی برای یادگیری اصول پایتون وجود دارد، عبور از آنها به جنبه های متوسط ​​و پیشرفته زبان بسیار دشوار است. این دوره به دنبال رسیدگی به آن است.

بیش از 20 ساعت سخنرانی دقیق، برنامه‌نویسی زنده و پروژه‌های هدایت‌شده، همه چیزهایی را که پایتون ارائه می‌دهد، از ابتدا باز می‌کنیم. ما نه تنها به پایتون شی گرا و نحوه استفاده از آن مسلط خواهیم شد، بلکه در این فرآیند به درک مدل داده پایتون و ماهیت نوشتن کد پایتون نیز خواهیم رسید.

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

––––– ساختار برنامه درسی –––––

برنامه درسی حول سه بخش افزایش مهارت هدف سازماندهی شده است.

در ابتدا، پایه‌های اساسی کار با کلاس‌ها در پایتون، تعریف انواع خود، سفارشی‌سازی آن‌ها با استفاده از dunder، افشای ویژگی‌های مدیریت‌شده از طریق ویژگی‌ها و استفاده مؤثر از وراثت را پوشش خواهیم داد.

· کلاس ها

· دوندرز

· خواص

· ارث

پس از ایجاد آن پایه اصلی، در پنج بخش بعدی، به موضوعات پیشرفته تری می پردازیم که توسعه دهندگان پایتون مؤثر بر آنها تکیه می کنند. اینها شامل ویژگی‌های مدرنی مانند کلاس‌های داده، شمارش‌ها و شکاف‌ها، اما همچنین ساختارهای محوری و ثابت‌تر مانند توصیف‌کننده‌ها و استثناها می‌شوند.

· اسلات

· کلاس های داده

· توصیفگرها

· شمارش ها

· استثناها

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

· پروتکل های پویا

· کلاس های پایه چکیده

· ارث چندگانه

· فرابرنامه نویسی کلاس

این دوره برای هر کسی که متعهد به تسلط بر برنامه نویسی شی گرا با پایتون است، صرف نظر از تجربه قبلی در نظر گرفته شده است، به همین دلیل است که یک مقدمه کامل برای زبان برنامه نویسی پایتون گنجانده شده است تا هرکسی بتواند نوشتن پایتونیک را شروع کند. کد در کمترین زمان.

امیدوارم متعهد شوید که در این سفر به من بپیوندید، زیرا ما پایتون شما را به سطح بعدی می‌بریم. می بینمت داخل!


سرفصل ها و درس ها

معرفی Introduction

  • معرفی Introduction

  • تمام منابع دوره All Course Resources

کلاس ها Classes

  • بخش معرفی Section Intro

  • PEP8 PEP8

  • کلاس اول ما Our First Class

  • دولت طبقاتی Class State

  • روش ها و رفتار Methods And Behaviour

  • ویژگی های نمونه Instance Attributes

  • روش دیگر: getattr() و setattr() Alternatively: getattr() And setattr()

  • تجدید نظر در خود Revisting self

  • چالش مهارت شماره 1 Skill Challenge #1

  • راه حل Solution

  • کلاس و روش های استاتیک Class and Static Methods

  • جایزه: یک نحو جایگزین BONUS: An Alternative Syntax

  • داندر دیکت Dunder Dict

  • کلاس در مقابل نمونه __dict__ Class vs Instance __dict__

  • جایزه: مراقب تغییرات قابل تغییر باشید BONUS: Careful With Mutables

  • کنترل دسترسی Access Control

  • رشته های مستند Docstrings

  • چالش مهارت شماره 2 Skill Challenge #2

  • راه حل Solution

  • گوچا سریع Quick Gotcha

  • بخش منابع Section Resources

دوندرز Dunders

  • بخش معرفی Section Intro

  • بیایید یک __repr__ اضافه کنیم Let's Add A __repr__

  • __repr__ در مقابل __str__ __repr__ vs __str__

  • __قالب__ __format__

  • برابری شی Object Equality

  • پاداش: عدم برابری BONUS: Non-Equality

  • هش و تغییرپذیری Hashing and Mutability

  • کتاب هش پذیر Hashable Book

  • پاداش: هشینگ گوچا BONUS: Hashing Gotcha

  • چالش مهارت شماره 3 Skill Challenge #3

  • راه حل Solution

  • سایر مقایسه های غنی Other Rich Comparisons

  • یک راه بهتر A Better Way

  • حقیقت Truthiness

  • جایزه: تست ارزش حقیقت از طریق __len__ BONUS: Truth Value Testing Via __len__

  • کلاس های کانتینری Container Classes

  • افزودن پایتونیک Pythonic Add

  • جادوی __getitem__ The __getitem__ Magic

  • تعریف جادوهای خودمان Defining Our Own Magics

  • چالش مهارت شماره 4 Skill Challenge #4

  • راه حل Solution

  • بخش منابع Section Resources

خواص Properties

  • بخش معرفی Section Intro

  • مشتری ثابت - مشتری وفادار Loyal Customers

  • همیشه ساده شروع کنید Always Start Plain

  • یک Refactor A Refactor

  • خصوصیات خصوصی و مخدوش Private And Mangled Attributes

  • شکستن تغییرات Breaking Changes

  • املاک در کلاس زندگی می کنند Properties Live In The Class

  • چالش مهارت شماره 5 Skill Challenge #5

  • راه حل Solution

  • نحو دکوراتور Decorator Syntax

  • جایزه: تجدید کننده تزئینات BONUS: Decorators Refresher

  • خواندن یا نوشتن فقط خواص Read or Write Only Properties

  • ویژگی های مدیریت شده Managed Attributes

  • جایزه: بررسی میانگین در حافظه پنهان BONUS: Caching Average Review

  • حذف خواص Deleting Properties

  • Property Docstrings Property Docstrings

  • چالش مهارت شماره 6 Skill Challenge #6

  • راه حل Solution

  • بخش منابع Section Resources

وراثت Inheritance

  • بخش معرفی Section Intro

  • وراثت Inheritance

  • وراثت برای چیست؟ What Is Inheritance Good For?

  • همه کلاس ها از شی ارث می برند All Classes Inherit From object

  • ترتیب تفکیک روش Method Resolution Order

  • لغو کلاس فرعی Subclass Overrides

  • هیئت والدین بهتر: super() Better Parent Delegation: super()

  • زیر کلاس __init__ Subclass __init__

  • چالش مهارت شماره 7 Skill Challenge #7

  • راه حل Solution

  • ویژگی های زیر طبقه بندی Subclassing Properties

  • گسترش داخلی ها Extending Built-ins

  • مثالی دیگر Another Example

  • مراقب دام ها باشید Beware The Pitfalls

  • فراتر از وراثت Beyond Inheritance

  • چالش مهارت شماره 8 Skill Challenge #8

  • راه حل Solution

  • بخش منابع Section Resources

شکاف ها Slots

  • بخش معرفی Section Intro

  • بررسی ذخیره سازی داده های نمونه Instance Data Storage Review

  • شکاف ها Slots

  • ساکنان کلاس Class Residents

  • جایزه: نشان دادن مزیت حافظه BONUS: Demonstrating The Memory Advantage

  • به ارث بردن اسلات Inheriting Slots

  • چیزی برای جلوگیری از Something To Avoid

  • آیا باید همیشه از اسلات استفاده کنیم؟ Should We Always Use Slots?

  • چالش مهارت شماره 9 Skill Challenge #9

  • راه حل Solution

  • بخش منابع Section Resources

کلاس های داده Dataclasses

  • بخش معرفی Section Intro

  • چرا The Why

  • یک جایگزین: namedtuple An Alternative: namedtuple

  • جایزه: یک نقطه سریع در مورد تغییر ناپذیری BONUS: A Quick Point On Immutability

  • جایزه: تایپ شده NamedTuple BONUS: Typed NamedTuple

  • کلاس های داده Dataclasses

  • باتری های گنجانده شده است Batteries Included

  • نکات را تایپ کنید Type Hints

  • سفارشی سازی فیلدها Customizing Fields

  • پاداش: سفارشی سازی بیشتر BONUS: Further Customization

  • تغییرناپذیری Immutability

  • وراثت Inheritance

  • چرا فقط نام دو نفره نیست؟ Why Not Just Namedtuples?

  • چالش مهارت شماره 10 Skill Challenge #10

  • راه حل Solution

  • بخش منابع Section Resources

توصیف کننده ها Descriptors

  • بخش معرفی Section Intro

  • بررسی زنجیره جستجوی ویژگی Attribute Lookup Chain Review

  • پروتکل توصیفگر The Descriptor Protocol

  • استفاده از یک توصیفگر Using A Descriptor

  • ذخیره سازی توصیفگر Descriptor Storage

  • حتی بهتر: ذخیره سازی نمونه Even Better: Instance Storage

  • با استفاده از __set_name__ Using __set_name__

  • بستن انتهای شل Tying Up Loose Ends

  • توصیفگرهای غیر داده Non-Data Descriptors

  • آیا خواص فقط بهتر نیستند؟ Aren't Properties Just Better?

  • پاداش: مشابه چگونه؟ BONUS: Similar How?

  • چالش مهارت شماره 11 Skill Challenge #11

  • راه حل Solution

  • راه حل Refactored Refactored Solution

  • بخش منابع Section Resources

Enums Enums

  • بخش معرفی Section Intro

  • نکته چیست؟ What's The Point?

  • شمارش ها Enumerations

  • اعضا Members

  • مستعار در مقابل استادان Aliases vs Masters

  • منحصر به فرد بودن Uniqueness

  • جایزه: نحو عملکردی BONUS: Functional Syntax

  • مقادیر خودکار Automatic Values

  • سفارشی کردن مقادیر بعدی Customizing Next Values

  • توسعه پذیری Extensibility

  • پرچم ها Flags

  • بیت ماسک ها Bitmasks

  • جایزه: Bitwise چگونه کار می کند BONUS: How Bitwise Works

  • چالش مهارت شماره 12 Skill Challenge #12

  • راه حل Solution

  • بخش منابع Section Resources

استثناها Exceptions

  • بخش معرفی Section Intro

  • شی استثنا The Exception Object

  • رسیدگی Handling

  • بالا بردن Raising

  • EAFP EAFP

  • چه خبر با SyntaxError؟ What's Up With SyntaxError?

  • سلسله مراتب استثنایی Exception Hierarchy

  • بند دیگر The Else Clause

  • سرانجام Finally

  • تودرتو و بسته بندی Nesting And Bundling

  • نورد خودمان Rolling Our Own

  • چالش مهارت شماره 13 Skill Challenge #13

  • راه حل Solution

  • بخش منابع Section Resources

پروتکل های پویا Dynamic Protocols

  • بخش معرفی Section Intro

  • پایتون به صورت پویا تایپ می شود Python Is Dynamically Typed

  • تایپ اردک Duck Typing

  • پروتکل ها Protocols

  • ساخت یک سکانس The Making Of A Sequence

  • ZooFavorites ZooFavorites

  • برش پایتونیک Pythonic Slicing

  • پاداش: از تکرار به تکرار و تکرار BONUS: From Iteration To Iterables And Iterators

  • پاداش: پروتکل Iterator BONUS: The Iterator Protocol

  • جایزه: تایپ اردک شدید BONUS: Extreme Duck Typing

  • چالش مهارت شماره 14 Skill Challenge #14

  • راه حل Solution

  • بخش منابع Section Resources

کلاس های پایه چکیده Abstract Base Classes

  • بخش معرفی Section Intro

  • تایپ اردک ممکن است کافی باشد Duck Typing May Be Enough

  • Checking Refresher را تایپ کنید Type Checking Refresher

  • کلاس های پایه چکیده Abstract Base Classes

  • جایزه: چه زمانی باید خودمان را بسازیم؟ BONUS: When Should We Create Our Own?

  • ABC های استاندارد Lib Standard Lib ABCs

  • نگاهی سریع به زیر کاپوت A Quick Look Under The Hood

  • چالش مهارت شماره 15 Skill Challenge #15

  • راه حل Solution

  • راه حل Refactored Refactored Solution

  • راه حل مجدد Re-refactored Solution

  • بخش منابع Section Resources

ارث چندگانه Multiple Inheritance

  • بخش معرفی Section Intro

  • منطقی است It Makes Sense

  • رفتار به اشتراک گذاری Sharing Behaviour

  • والدین __init__() Parent __init__()

  • بازبینی super() Revisiting super()

  • واریادیک Variadics

  • مشکل الماس The Diamond Problem

  • چه چیزی __mro__ را درایو می کند؟ What Drives __mro__?

  • ارزشش را دارد؟ Worth It?

  • مخلوط ها Mixins

  • سازماندهی رابط ها Organizing Interfaces

  • چالش مهارت شماره 16 Skill Challenge #16

  • راه حل Solution

  • بخش منابع Section Resources

فرابرنامه نویسی کلاس Class Metaprogramming

  • بخش معرفی Section Intro

  • متا چیست؟ What Is Meta?

  • کلاس ها اشیا هستند Classes Are Objects

  • type() As Class Factory type() As Class Factory

  • جایزه: بیشتر در مورد ایجاد کلاس پویا BONUS: More On Dynamic Class Creation

  • تعریف متاکلاس خودمان Defining Our Own Metaclass

  • داخل شکم هیولا Inside The Belly Of The Monster

  • شکل الف: کلاس‌های نمونه صفر و تک‌تنها Exhibit A: Zero Instance Classes And Singletons

  • شکل B: اجرای نام‌های روش منحصر به فرد Exhibit B: Enforcing Unique Method Names

  • جادوی عمیق تر از 99٪ Deeper Magic Than 99%

  • بخش منابع Section Resources

ضمیمه الف - مقدمه ای کوتاه بر پایتون Appendix A - A Brief Introduction To Python

  • خوش آمدی Welcome

  • انواع داده ها Data Types

  • عملگرهای محاسباتی و تخصیص افزوده Arithmetic And Augmented Assignment Operators

  • Ints و Floats Ints And Floats

  • عملگرهای بولین و مقایسه Booleans And Comparison Operators

  • رشته های Strings

  • مواد و روش ها Methods

  • ظروف I - لیست ها Containers I - Lists

  • لیست ها در مقابل رشته ها Lists vs. Strings

  • فهرست روش ها و توابع List Methods And Functions

  • ظروف II - تاپل Containers II - Tuples

  • ظروف III - مجموعه Containers III - Sets

  • ظروف چهارم - دیکشنری ها Containers IV - Dictionaries

  • کلیدهای فرهنگ لغت و مقادیر Dictionary Keys And Values

  • اپراتورهای عضویت Membership Operators

  • کنترل جریان - if، else، و elif Controlling Flow - if, else, And elif

  • ارزش حقیقت غیر بولی ها Truth Value Of Non-booleans

  • برای حلقه ها For Loops

  • توالی تغییرناپذیر range(). The range() Immutable Sequence

  • در حالی که حلقه ها While Loops

  • شکستن و ادامه Break And Continue

  • زیپ کردن Iterables Zipping Iterables

  • فهرست درک List Comprehensions

  • تعریف توابع Defining Functions

  • آرگومان های تابع - موقعیت در مقابل کلمه کلیدی Function Arguments - Positional vs Keyword

  • لامبدا Lambdas

  • وارد کردن ماژول ها Importing Modules

نمایش نظرات

آموزش برنامه نویسی شی گرا پایتون (OOP): مبتدی تا حرفه ای
جزییات دوره
26.5 hours
231
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
2,205
4.3 از 5
دارد
دارد
دارد
Andy Bek
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Andy Bek Andy Bek

مشاور نرم افزار