|
65 | 65 | پیشنهاد `PEP 8 <http://www.python.org/dev/peps/pep-0008>`__: برای نوشتن نام کلاس از شیوه CapitalizedWords استفاده شود. |
66 | 66 |
|
67 | 67 |
|
| 68 | +.. tip:: |
| 69 | + کلاسها نیز همانند توابع حوزه (Scope) خود را دارند - درس دوازدهم. با تعریف هر کلاس یک حوزه محلی جدید در برنامه پایتونی تعریف میگردد. |
| 70 | + |
| 71 | +.. tip:: |
| 72 | + یک کلاس، تعریف کننده صفات (ویژگیها) - که به عنوان Attribute شناخته میشوند - و رفتارهای (عملیات) - که به عنوان Method شناخته میشوند - اشیایی است که از آن ایجاد خواهد شد. در واقع نام کلاس معرف نوع (type) اشیای خود است. |
68 | 73 |
|
69 | | -نمونهسازیs یا ایجاد شی از کلاس |
| 74 | +نمونهسازی (Instantiation) |
70 | 75 | -------------------------------------------------------- |
71 | 76 |
|
| 77 | +به عملیات ایجاد یک شی از کلاس **نمونهسازی (Instantiation)** گفته میشود. کلاس چیزی جز تکه کدی نوشته شده نیست و جایی در حافظه ندارد، این اشیا ایجاد شده از کلاس هستند که در حافظه (Memory) قرار میگیرند. نمونهسازی از یک کلاس در زبان پایتون به صورت زیر انجام میشود:: |
| 78 | + |
| 79 | + >>> class Sample(): |
| 80 | + ... pass |
| 81 | + ... |
| 82 | + >>> |
| 83 | + |
| 84 | + >>> sample_object = Sample() # Instantiation |
| 85 | + |
| 86 | + >>> type(sample_object) |
| 87 | + <class '__main__.Sample'> |
| 88 | + |
| 89 | +در زبان پایتون وقتی در سمت راست عملگر انتساب نام کلاس ذکر گردد - همچون فراخوانی یک تابع - یک شی از آن کلاس ایجاد میگرد. |
| 90 | + |
| 91 | +از هر کلاس میتوان بینهایت نمونهسازی داشت. هر شی از یک کلاس، حوزه (Scope) مخصوص به خود را دارد که جدا از دیگر اشیا آن کلاس خواهد بود. بنابراین اشیا هر کلاس کاملا مستقل و ایزوله (isolated) از یکدیگر هستند. |
| 92 | + |
| 93 | + |
| 94 | + |
| 95 | +متد (Method) |
| 96 | +----------------------------------------------------- |
| 97 | + |
| 98 | +متدها در واقع توابعی هستند که داخل هر کلاس تعریف میشوند. هر کلاس پایتون میتواند شامل سه نوع متد باشد: |
| 99 | + |
| 100 | +* Instance Method |
| 101 | +* Class Method |
| 102 | +* Static Method |
| 103 | + |
| 104 | +.. code-block:: python |
| 105 | + :linenos: |
| 106 | +
|
| 107 | + class Sample(): |
| 108 | + |
| 109 | + def instance_method(self): |
| 110 | + pass |
| 111 | + |
| 112 | + @classmethod |
| 113 | + def class_method(cls): |
| 114 | + pass |
| 115 | + |
| 116 | + @staticmethod |
| 117 | + def static_method(): |
| 118 | + pass |
| 119 | + |
| 120 | +
|
| 121 | +
|
| 122 | +متد شی (Instance Method) |
| 123 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 124 | + |
| 125 | +رایجترین نوع متد در پایتون است. برای ایجاد این متد نیازی به دکوراتور (Decorator - درس سیزدهم) نیست. همانطور که از نام این متد مشخص است این متد تنها از سوی اشیا یک کلاس قابل استفاده است. هر شی از کلاس صفات (Attributes - *کمی جلوتر شرح داده خواهد شد*) خاص خود را دارد که از این متدها میتوان برای دستیابی، دستکاری و مدیریت آنها استفاده کرد. |
| 126 | + |
| 127 | + |
| 128 | + |
| 129 | + |
| 130 | +متد کلاس (Class Method) |
| 131 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 132 | + |
| 133 | + |
| 134 | + |
| 135 | +متد ایستا (Static Method) |
| 136 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 137 | + |
| 138 | + |
| 139 | +متدهای جادویی (Magic methods) |
| 140 | +----------------------------------------------------- |
| 141 | + |
| 142 | + |
| 143 | + |
| 144 | +صفات (Attributes) |
| 145 | +----------------------------------------------------- |
72 | 146 |
|
| 147 | +صفات یا ویژگیها که در شی گرایی |
73 | 148 |
|
74 | 149 |
|
75 | 150 | | |
|
0 commit comments