You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: source/lessons/l17-object-oriented-programming-with-python.rst
+33-10Lines changed: 33 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,11 @@
1
1
.. role:: emoji-size
2
2
3
3
.. meta::
4
-
:description: کتاب آموزش زبان برنامه نویسی پایتون به فارسی، آموزش شی گرایی در پایتون، تعریف کلاس در پایتون، معرفی ساختار کلاس در پایتون، تعریف متد Method و صفت Attribute در کلاسهای پایتون، معرفی Constructor در کلاس پایتون، ایجاد شی و نمونه سازی در پایتون، OOP در پایتون، شی hashable در پایتون، hash در پایتون، مقایسه دو شی در پایتون
5
-
:keywords: آموزش, آموزش پایتون, آموزش برنامه نویسی, پایتون, تابع, کتابخانه, پایتون, شی گرایی در پایتون
4
+
:description: پایتون به پارسی - کتاب آنلاین و آزاد آموزش زبان برنامهنویسی پایتون - درس هفدهم: شی گرایی (OOP) در پایتون: تعریف کلاس و ایجاد شی
6
5
7
6
7
+
.. _lesson-17:
8
+
8
9
درس ۱۷: شی گرایی (OOP) در پایتون: تعریف کلاس و ایجاد شی
این درس بر ارائه تعاریف مربوط به کلاس (Class) و شی (Object) از مفاهیم شیگرایی حاکم در زبان برنامهنویسی پایتون تمرکز دارد و مفاهیم باقی مانده در دروس آتی ارائه خواهند شد.
21
22
22
-
توجه داشته باشید، هم اکنون پشتیبانی نسخه 2x پایتون به پایان رسیده است. بنابراین برخلاف دروس پیشین و به منظور جلوگیری از پیچیدگیهای غیر ضروری، تمام مطالب این درس بر مبنای پایتون 3x ارائه میشود.
مفاهیم زیادی از پایتون تا پیش از این درس مطرح شده است، باید بدانیم که تمام آنها از پیادهسازی شی گرا پیروی میکردند. هر چیزی در پایتون یک شی است. انواع داده مانند اعداد، رشته، لیست یا دیکشنری همگی شی بودند - نمونههایی که از کلاسهای مربوط به خود ایجاد شدهاند. حتی تعریف تابع نیز به معنی ایجاد یک شی از کلاس متناطر آن بوده است. اما حالا میخواهیم نوع یا کلاسهای مورد نظر خودمان را در برنامه ایجاد و اشیایی از این کلاسها نمونه سازی کنیم. در ادامه به شرح این روند خواهیم پرداخت.
در زبان پایتون دو شیوه رایج برای بررسی نوع یک شی وجود دارد. یک راه استفاده از تابع آماده (built-in) ``type`` است [`اسناد پایتون <https://docs.python.org/3/library/functions.html#type>`__] که پیشتر از آن استفاده میکردیم و راه دیگر استفاده از تابع آماده (built-in) ``isinstance`` میباشد [`اسناد پایتون <https://docs.python.org/3/library/functions.html#isinstance>`__] این تابع دو آرگومان میپذیرد که به ترتیب شی و نوع مورد نظر هستند، در صورتی که شی از نوع دریافت شده باشد، مقدار ``True`` و در غیر این صورت ``False`` برمیگرداند.
154
160
161
+
162
+
163
+
.. _python-oop-constructor:
164
+
155
165
سازنده (Constructor)
156
166
~~~~~~~~~~~~~~~~~~~~~~~~~
157
167
@@ -235,7 +245,9 @@
235
245
* ارسال آرگومان در زمان نمونهسازی شی یا همان پیادهسازی متد ``__init__`` به برنامهنویس این اطمینان را میدهد که شی جدید در یک وضعیت درست تنظیم شده است.
236
246
237
247
* آرگومانهای متناظر با پارامترهای متد ``__init__`` (به جز ``self`` که توسط مفسر پایتون مقداردهی میگردد) میبایست در زمان نمونهسازی و فراخوانی کلاس ارسال گردد.
Instance Methodها تنها میتوانند توسط اشیا فراخوانی شوند. روند فراخوانی یک متد توسط شی نیز به صورت نام شی + کاراکتر ``.`` + نام متد میباشد.
556
571
557
572
573
+
.. _python-class-method:
558
574
559
575
متد کلاس (Class Method)
560
576
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -594,6 +610,8 @@ Class Attribute
594
610
این نوع متد (Class Method) را میتوان هم با استفاده از نام کلاس دستیابی کرد (سطر ۱۳) و هم با استفاده از اشیای آن کلاس (سطر ۱۵)، در واقع دکوراتور ``classmethod@`` کارهای لازم برای نادیده گرفتن شی و ارسال مقدار پارامتر ``cls`` را انجام میدهد.
595
611
596
612
613
+
.. _python-static-method:
614
+
597
615
متد ایستا (Static Method)
598
616
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
599
617
@@ -635,6 +653,10 @@ Class Attribute
635
653
این نوع متد (Static Method) را میتوان هم با استفاده از نام کلاس دستیابی کرد (سطر ۱۷) و هم با استفاده از اشیای آن کلاس (سطر ۱۹)، در واقع دکوراتور ``staticmethod@`` کارهای لازم برای نادیده گرفتن شی و کلاس مربوط را انجام میدهد.
636
654
637
655
656
+
657
+
.. _python-object-hash:
658
+
659
+
638
660
مقدار Hash یک شی و کاربرد آن در پایتون
639
661
---------------------------------------------
640
662
@@ -670,6 +692,8 @@ Class Attribute
670
692
* با دوباره اجرا کردن برنامه یا اسکریپت ممکن است به نتایج دیگری از مقدار hash برسید. در واقع تظمین یکتایی مقدار hash تولید شده در پایتون تنها در ازای حیات هر proccess یا «اجرای برنامه» پابرجا خواهد بود.
671
693
672
694
695
+
.. _python-hashable-object:
696
+
673
697
شی hashable
674
698
~~~~~~~~~~~~~~~~~~~~~
675
699
@@ -688,6 +712,8 @@ Class Attribute
688
712
متد ``__hash__`` جزو متدهای خاص در پایتون میباشد و هر کلاسی که در پایتون ایجاد میکنید به صورت ضمنی یک پیادهسازی پیشفرض از این متد را شامل میشود.
689
713
690
714
715
+
.. _python-using-hash:
716
+
691
717
کاربرد hash در پایتون
692
718
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
693
719
@@ -784,14 +810,11 @@ Class Attribute
784
810
در این مثال هر دو Attribute کلاس Student از نوع immutable بودند، بنابراین از خود آنها برای مقایسه و محاسبه مقدار hash استفاده کردیم. به هر حال منطق پیادهسازی این دو متد بر اساس مسئله مطرح شده، بر عهده برنامهنویس میباشد. حتی میتوانید از مقدار تابع ``()id`` یا همان ``id(self)`` بهره بگیرید.
785
811
786
812
787
-
788
813
|
789
814
790
815
----
791
816
792
817
:emoji-size:`😊` امیدوارم مفید بوده باشه
793
818
794
-
`لطفا دیدگاه و سوالهای مرتبط با این درس خود را در کدرز مطرح نمایید. <https://www.coderz.ir/python-tutorial-oop-class-and-object>`_
Copy file name to clipboardExpand all lines: source/lessons/l18-inheritance-and-association-in-python.rst
+3-6Lines changed: 3 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,11 @@
1
1
.. role:: emoji-size
2
2
3
3
.. meta::
4
-
:description: کتاب آموزش زبان برنامه نویسی پایتون به فارسی، آموزش شی گرایی در پایتون، معرفی رابطه های وراثت (Inheritance) و انجمن (Association) در پایان، OOP در پایتون، ترکیب در پایتون، Method Resolution Order یا MRO پایتون، Composition و Aggregation در پایتون، وراثت چندگانه در پایتون، Multiple Inheritance پایتون، کلاس Mixin در پایتون
5
-
:keywords: آموزش, آموزش پایتون, آموزش برنامه نویسی, پایتون, تابع, کتابخانه, پایتون, شی گرایی در پایتون
4
+
:description: پایتون به پارسی - کتاب آنلاین و آزاد آموزش زبان برنامهنویسی پایتون - درس هجدهم: شی گرایی (OOP) در پایتون: وراثت (Inheritance)، Association و Mixin
6
5
7
6
7
+
.. _lesson-18:
8
+
8
9
درس ۱۸: شی گرایی (OOP) در پایتون: وراثت (Inheritance)، Association و Mixin
در این درس همچنین به شرح **وراثت چندگانه (Multiple Inheritance)**، **Method Resolution Order** و کلاسهای **Mixin** در زبان برنامهنویسی پایتون خواهیم پرداخت.
22
23
23
-
توجه داشته باشید، هم اکنون پشتیبانی نسخه 2x پایتون به پایان رسیده است. بنابراین همانند درس پیش و به منظور جلوگیری از پیچیدگیهای غیر ضروری، تمام مطالب این درس بر مبنای پایتون 3x ارائه میشود.
24
-
25
-
26
24
27
25
:emoji-size:`✔` سطح: متوسط
28
26
@@ -765,7 +763,6 @@ Mixin
765
763
766
764
:emoji-size:`😊` امیدوارم مفید بوده باشه
767
765
768
-
`لطفا دیدگاه و سوالهای مرتبط با این درس خود را در کدرز مطرح نمایید. <https://www.coderz.ir/python-tutorial-oop-inheritance-mro-association>`_
Copy file name to clipboardExpand all lines: source/lessons/l19-metaclass-and-abstraction-in-python.rst
+4-8Lines changed: 4 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,12 @@
1
1
.. role:: emoji-size
2
2
3
3
.. meta::
4
-
:description: کتاب آموزش زبان برنامه نویسی پایتون به فارسی، آموزش شی گرایی در پایتون، OOP در پایتون، انتزاع در پایتون، Abstraction و Metaclass در پایتون، متاکلاس در پایتون، متا کلاس (Metaclass) در پایتون، انتزاع یا تجرید (Abstraction) در پایتون، abc در پایتون
5
-
:keywords: آموزش, آموزش پایتون, آموزش برنامه نویسی, پایتون, تابع, کتابخانه, پایتون, شی گرایی در پایتون
4
+
:description: پایتون به پارسی - کتاب آنلاین و آزاد آموزش زبان برنامهنویسی پایتون - درس نوزدهم: شی گرایی (OOP) در پایتون: متا کلاس (Metaclass) و انتزاع (Abstraction)
6
5
7
6
7
+
8
+
.. _lesson-19:
9
+
8
10
درس ۱۹: شی گرایی (OOP) در پایتون: متا کلاس (Metaclass) و انتزاع (Abstraction)
این درس در ادامه دروس پیش مرتبط با آموزش شی گرایی در پایتون میباشد و به بررسی قابلیت **متا کلاس (Metaclass)** در پایتون میپردازد و در ادامه یکی دیگر از مفاهیم اصلی برنامهنویسی شی گرا به نام **انتزاع (Abstraction)** را معرفی و چگونگی پیادهسازی آن در زبان برنامهنویسی پایتون را بررسی خواهیم کرد.
20
22
21
-
توجه داشته باشید، هم اکنون پشتیبانی نسخه 2x پایتون به پایان رسیده است. بنابراین همانند دروس پیش شی گرایی و به منظور جلوگیری از پیچیدگیهای غیر ضروری، تمام مطالب این درس بر مبنای پایتون 3x ارائه میشود.
22
-
23
-
24
-
25
23
26
24
27
25
:emoji-size:`✔` سطح: متوسط
@@ -398,7 +396,5 @@
398
396
399
397
:emoji-size:`😊` امیدوارم مفید بوده باشه
400
398
401
-
`لطفا دیدگاه و سوالهای مرتبط با این درس خود را در کدرز مطرح نمایید. <https://www.coderz.ir/python-tutorial-oop-metaclass-abstraction>`_
0 commit comments