1
1
# Advanced_Python
2
+
2
3
Python-ga chuqurroq sho'ng'ing va kodlash mahoratingizni oshiring.🟢📡
4
+
3
5
# Python generatori:
4
6
5
7
• Iterator obyektini qaytaruvchi funksiyaning maxsus turi.
6
8
• Qo'ng'iroq qiluvchi tomonidan so'ralganda birma-bir qiymatlar ketma-ketligini ishlab chiqaradi.
7
- • Generatorlar ijroni to'xtatib turish va ketma-ketlikda keyingi qiymatni qaytarish uchun "yield" kalit so'zi yordamida aniqlanadi.
9
+ • Generatorlar ijroni to'xtatib turish va ketma-ketlikda keyingi qiymatni qaytarish uchun "yield" kalit so'zi yordamida
10
+ aniqlanadi.
8
11
• Bu xotiradan yanada samarali foydalanish imkonini beradi va cheksiz ketma-ketlikni yaratishi mumkin.
9
12
10
13
Ilova qilingan gif python generatorlarini ko'rsatadi,
11
14
12
-
13
15
https://github.com/themusharraf/Advanced_Python/assets/122869450/4813cbf1-54ad-4b07-8954-4f9eea043745
14
16
15
-
16
17
# Decorator
18
+
17
19
Dekoratorlar yuqori darajadagi funktsiyalarni chaqirish uchun oddiy sintaksisni ta'minlaydi .
18
20
19
- Ta'rifga ko'ra, dekorator boshqa funktsiyani qabul qiladigan va ikkinchi funktsiyaning harakatini aniq o'zgartirmasdan kengaytiradigan funktsiyadir.
21
+ Ta'rifga ko'ra, dekorator boshqa funktsiyani qabul qiladigan va ikkinchi funktsiyaning harakatini aniq o'zgartirmasdan
22
+ kengaytiradigan funktsiyadir.
20
23
21
24
Bu chalkash tuyuladi, lekin aslida unday emas, ayniqsa dekorativlar qanday ishlashiga oid bir nechta misollarni
22
25
ko'rganingizdan keyin. Ushbu maqoladagi barcha misollarni bu erda topishingiz mumkin .
23
26
24
-
25
27
def hello(name):
26
28
# ichki funksiya
27
29
def get_name():
@@ -38,7 +40,6 @@ ko'rganingizdan keyin. Ushbu maqoladagi barcha misollarni bu erda topishingiz mu
38
40
39
41
Decorator funksiya argument sifatida funksiya qabul qiladi.
40
42
41
-
42
43
def make_decorator(func):
43
44
def inner():
44
45
# Ichki funksiya orqali func xususiyatlarini o'zgartirishimiz mumkin
@@ -59,6 +60,7 @@ Decorator funksiya argument sifatida funksiya qabul qiladi.
59
60
60
61
# Dekorator ishlayapti
61
62
# Dekorator uchun ishlatiladigan funksiya
63
+
62
64
Bitta funksiyada bir nechta decorator ishlatishimiz ham mumkin, bunda birinchisidan boshlab decoratorlar ishlab keladi.
63
65
64
66
def divide_decorator(func):
@@ -89,3 +91,94 @@ Bitta funksiyada bir nechta decorator ishlatishimiz ham mumkin, bunda birinchisi
89
91
print(divider(10, 5)) # 2.0
90
92
print(divider(10, 0)) # 10.0
91
93
94
+ # typing modul
95
+
96
+ ## Asosiy turlar
97
+
98
+ - ` int ` : Butun son
99
+ - ` float ` : O'nli son
100
+ - ` bool ` : Mantiqiy qiymat (True/False)
101
+ - ` str ` : Matn
102
+
103
+ ## Ro'yxatlar va Lug'atlar
104
+
105
+ - ` List[int] ` : Butun sonlardan iborat ro'yxat
106
+ - ` Dict[str, int] ` : Kalitlari matn, qiymatlari butun son bo'lgan lug'at
107
+
108
+ ## Union
109
+
110
+ ### O'zgaruvchining bir nechta turda bo'lishi mumkinligini belgilash uchun Union dan foydalaniladi.
111
+
112
+ ``` python
113
+ from typing import Union
114
+
115
+
116
+ def foo (x : Union[int , str ]) -> None :
117
+ print (x)
118
+ ```
119
+
120
+ ## Optional
121
+
122
+ ### O'zgaruvchi ma'lum bir turda yoki None bo'lishi mumkinligini belgilash uchun Optional dan foydalaniladi.
123
+
124
+ ``` python
125
+ from typing import Optional
126
+
127
+
128
+ def foo (x : Optional[int ]) -> None :
129
+ print (x)
130
+ ```
131
+
132
+ ## Tuple
133
+
134
+ ### Aniq uzunlikdagi va ma'lum turlardagi elementlardan iborat tuple belgilash uchun Tuple dan foydalaniladi.
135
+
136
+ ``` python
137
+ from typing import Tuple
138
+
139
+
140
+ def foo (x : Tuple[int , float , str ]) -> None :
141
+ print (x)
142
+ ```
143
+
144
+ ## Any
145
+
146
+ ### Har qanday turdagi bo'lishi mumkin bo'lgan o'zgaruvchi belgilash uchun Any dan foydalaniladi.
147
+
148
+ ``` python
149
+ from typing import Any
150
+
151
+
152
+ def foo (x : Any) -> None :
153
+ print (x)
154
+ ```
155
+
156
+ ## Type Aliases
157
+
158
+ ### Murakkab turlarni o'qilishi osonroq qilish uchun tur ta'riflari ishlatilishi mumkin.
159
+
160
+ ``` python
161
+ from typing import List
162
+
163
+ Vector = List[float ]
164
+
165
+
166
+ def foo (v : Vector) -> None :
167
+ print (v)
168
+ ```
169
+
170
+ ## Misol
171
+
172
+ ``` python
173
+ from typing import List, Dict, Union, Optional
174
+
175
+
176
+ def process_data (data : List[Dict[str , Union[int , float ]]]) -> Optional[float ]:
177
+ if not data:
178
+ return None
179
+ return sum (item[' value' ] for item in data) / len (data)
180
+ ```
181
+
182
+ ## Xulosa
183
+
184
+ ### typing moduli Python kodlaringizni tushunarliroq, qulayroq va xatolarni kamaytirish uchun juda foydali. Bu modul bilan yozilgan kodlar kelajakdagi o'zgarishlar uchun yanada aniqroq tuzilmani ta'minlaydi.
0 commit comments