Skip to content

Commit bd8fc69

Browse files
author
Saeid Darvish
committed
l17: some working
1 parent 9db3002 commit bd8fc69

1 file changed

Lines changed: 76 additions & 1 deletion

File tree

lessons/l17.rst

Lines changed: 76 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,86 @@
6565
پیشنهاد `PEP 8 <http://www.python.org/dev/peps/pep-0008>`__: برای نوشتن نام کلاس از شیوه CapitalizedWords استفاده شود.
6666

6767

68+
.. tip::
69+
کلاس‌ها نیز همانند توابع حوزه (Scope) خود را دارند - درس دوازدهم. با تعریف هر کلاس یک حوزه محلی جدید در برنامه پایتونی تعریف می‌گردد.
70+
71+
.. tip::
72+
یک کلاس، تعریف کننده صفات (ویژگی‌ها) - که به عنوان Attribute شناخته می‌شوند - و رفتار‌های (عملیات) - که به عنوان Method شناخته می‌شوند - اشیایی است که از آن ایجاد خواهد شد. در واقع نام کلاس معرف نوع (type) اشیای خود است.
6873

69-
نمونه‌سازیs یا ایجاد شی از کلاس
74+
نمونه‌سازی (Instantiation)
7075
--------------------------------------------------------
7176

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+
-----------------------------------------------------
72146

147+
صفات یا ویژگی‌ها که در شی گرایی
73148

74149

75150
|

0 commit comments

Comments
 (0)