ToCode
Kanalga Telegramโda oโtish
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Ko'proq ko'rsatish1 421
Obunachilar
Ma'lumot yo'q24 soatlar
+37 kunlar
-430 kunlar
Postlar arxiv
1 421
# ืื ืืคืื ื Chat GPT ืืจืืืื ืืช ืขืืืื
ืคืขื ืืฉืื ื ืฉืืกืคืืง ืืืืืื ืืืขืื ืืจืืืื ืืื ืฉืืขื ื ืขื ืืื ืฉืืืืช ืชืื ืืช ืขื ืืืื, ืืื ืืืขืจืื ืจืื ืืงืฆืืขืืช. ืืืจื ืื ืืืืื ื ืฉืืฉ ืืจืื ืื ืฉืื ืืืืื ืฉื ืืืฆืื ืืืืื, ืืืืื ืืืืืช ืืจืืืื ืืืืืช ืืืืืื ืื ืฉืื ืขื ืืืคื ืืกืืื. ืคืกืคืกื ื ืืจืื ืื ืฉืื ืืืืื ืืืืืกื ื ืืจืื ืื ืฉืื ืื ื ืืื ืื.
ืืืจื ืื ืืฉืื ื ืฉืืกืคืืง ืืชืช ืืืืขืืืช ืขืืืืช ืืืช ืืื ืืจืืืช ืืื ืืื ืืชืืืืืช ืขื ืืฉืืื ืงืฆืช ืืืชืจ ืืืจืืืช. ืืขืืฉืื ืื ืื ื ืืชืืืืื ืืืืื ืฉืื ืขืืืืช ืืืช ืื ืืฉืงืคืช ืืืืืช ืืชืืืืืืช ืฉื ืืืขืืืช ืขื ืืชืืจืื. ืฉืืืขืืืื ืืกืืืืื ืืฆืืืืื "ืืชืืื" ืืช ืืืขืจืืช, ืืฉืขื ืืืื ืืื Chat GPT ืืชืืืื ืืื ื ืืื ืงื. ืื ืจืืืง ืืืื ืฉืืืื ืืืืืืืืื ืืคืชืจื ืืฉืืืืช ืืืช ืืชืื ืืช ืืื ืืืชืจ ืืืืืขืืืื ืืืืืื ืืืืชืจ ืฉืื ื.
ืืื ืืคืฉืจ ืืืฉืื ืขื ืืขืืืช ืืืชืจ ืืฆืืจืชืืืช ืื ืงืฉืืช, ืื ืืื ืืขืงื ืฉืืืคืฉืจื ืื ื ืืืืืช ืื ืืืฉืื ื ืขืืจ ืืืื ืืืืืืื ืืื ืืคืชืืจ ืืชืืจ ืฉื ืจืืืื ืขืืืื. ืืื ืื ืื ืืืืจ ืืืฉืื. ืืืชืจ ืืฉืื ืืฉืื ืื ืฉืืืขืืืช ืืืื ืคืฉืื ืื ืืฉืงืคืืช ืืช ืืืืจืื ืฉื ืฆืืจื ืืขืฉืืช ืืขืืืื ืืืืืชืืช ืืื ืืืืงืืช ืืช ืืืฉืืจื ืืคืืชืื ืฉืื ืื ื ืืืคืฉืื.
ืืขืชืื (ืืื ืจืืืง) ื ืฆืืจื ืืขืืื ืืืชืจ ืงืฉื, ืืื ืืืื ืฉืื ืืืจ ืจืข. ืืชืืจ ืืืืืกืื ื ืฆืืจื ืืืืืช ืืกืืืืื ืืืกืชืื ืขื ืขืืืืืช ืืืืืืช ืฉื ืืืขืืืื ืืืฉืคืื ืืืชื ืืคื ืืืฉืืืื ืืคืจืืืงืืื ืงืืืืื. ืืชืืจ ืืืขืืืื ื ืฆืืจื ืืื ืืช ืชืืงื ืขืืืืืช ืืจืฉืืืื ืืืชืจ, ืืืื ืคืจืืืงืื ืงืื ืคืชืื ืืื ื ืฉืชืชืฃ ืืืืจื ืืื, ืืขืืจืชื ืืืืืกืื ืืืืื ืืืขืจืื ืืช ืืืืืืช ืฉืื ื ืื ืืื ืืฉืืืืช ืืืช ืื ืจืืืื ืืช.
"ืืจืื ืืช ืขืืืืชืื" ืื ืืืจ ืืืจื ืฉืื ืฉืื ืืืืืกืื ืื ืฉืื ืืืจืื ืืืื ืชืืืืื. ืืงืจืื ืืฆืื ื.
1 421
# ืืืื ืืืืชื: RANDOM ื zsh ืขืืื ืืืืืช ืืืืื
ื bash ืืืฉืชื ื ืืืืืื
RANDOM ืืืืืฃ ืืืกืคืจ ืืงืจืื. ืืื ืืคืฉืจ ืืืชืื ืงืื ืืื:
$ echo $0
bash
$ echo $RANDOM
5953
$ echo $RANDOM
12763
$ echo $RANDOM
2894
ืืื ืขืืื ืืืฉ ืืกืืจ. ืื ืืชืื Subshells ืืืฉืชื ื RANDOM ืืืฉืื ืืขืืื ืืืืื ืื ืืคืฉืจ ืืืชืื ืื ืืช ืื ื bash ืืืงืื ืฉืืืฉ ืฉืืจืืช ืฉืื ืืช ืืงืืืฅ:
$ echo $0
bash
$ echo $RANDOM | tee -a numbers
3064
$ echo $RANDOM | tee -a numbers
4881
$ echo $RANDOM | tee -a numbers
6698
ื zsh ืืืชื ืืืืช ืงืฆืช ืืืชืจ ืืืืืืช. ืืฉืืจืช ืืคืงืืื RANDOM ืขืืืื ืืชืงืื ืืืฆืื ืื ืคืขื ืืกืคืจ ืืืจ:
$ echo $0
-zsh
$ echo $RANDOM
4402
$ echo $RANDOM
2260
$ echo $RANDOM
12200
ืืื ืืืคืกืช ืืกืคืจ ืืงืจืื ืืชืื Subshell ืื ืืฉื ื ืืช ืืืฆื ืืคื ืืื ืฉื ืืฆืจื ืืืกืคืจืื ืืืงืจืืืื ืืืื ืืงืื ืืื ืืืคืืก ืชืืื ืืช ืืืชื ืฉืืืฉื ืืกืคืจืื ืืงืืืฅ:
$ echo $RANDOM | tee -a numbers
27376
$ echo $RANDOM | tee -a numbers
27376
$ echo $RANDOM | tee -a numbers
27376
ืืื ืขื tee ืื ืื ืืขืื ืื ืจืืืื ืืช ืืืกืคืจืื. ืืคืงืืืืช ืืืจืืช ืฉืืืชืืืช ืืกืคืจืื ืืงืจืืืื ืืืงืืืืช ืืืจืื ืื ืขืืื ืืืืืช ืคืืืช ืืจืืจ, ืื ืืื ืขืจื ืืื.1 421
# ืืืฉืงืขื ืืื ืืจืืขื ืฉืขืฉืืชื
ืืฉืงืขื ืืื ืืืืื ืืื ืืืืืฅ ืืืืจื ืืืฉืื. ืืืฉืงืขื ืืฉ ืชืืืจื (ROI) ืืื ืื ื ืืืืืื ืืืืื ืืืืืช ืืฉืงืขื ืืคื ืืชืืืจื ืฉืืื ื ืืชื ืช. ืงื ืืืช ืืืจื ืืื ืืืืื ืืืื ืืืฉืงืขื ืื ืื ืื ื ืืฉืืืื ืกืืื ืืืื ืฉื ืืกืฃ ืืืงืืืื ืืชืืืจื ื ืืก ืฉืืคืฉืจ ืืืืจ ืื ืื ืืืฉืืืจ ืืืชื. ืืฉืงืขื ืืขืกืง ืืืืื ืืืืืช ืงื ืื ืฉื ืืืื ืืช ืืืฉืืช ืืืคืขื ืื ืืจืืช ืงืืคืืื ืคืืจืกืืื. ืืืฉืงืขื ืืื ืื ืคืขืืืช ืืืืคืฉืจืช ืืฉืคืจ ืืช ืืคืจืืืืงืืืืืืช ืฉื ืืขืกืง.
ืฉืื ืื ืกืื ืื ืืืื ืืื ืื ืฉืงืืจื ืืฉืื ืื ื ืืืื ืื ืฉืืฉืื ืื ืขืืื ืืืืื ืฉืื ื ืืจืืฆืื ืืืืง ืืืจืช ืืช ืืืื ืื ืืืฉืืืื ืฉืื ื ืืืืื ืืจืืืง. ืฉืื ืืืื ืืกืื ืื ืืืื ืืืื ืืืืืื ืืขืืจ ืืชืืื ื ืืจืืื, ืืืืจื ืืืืืจืื ืืขืืจ ืื ืืืคืจ, ืืืืจืช ืืกืืจืช ืืืฆืืืช ืื ืฉืื ืื ืืืืงืฃ ืืืฉืจื ืืขืืืื.
ืืืืื ืืืจืืื ืืื ืืฉืงืขื ืืฉืื ืื ืกืื ืื ืืืื ืืื ืืืืขื ืืกืืื: ืื ืฉืงืื ื ืืืื ื ืืืฉื ืืขืกืง ืืฆืคื ืืืฉืงืืข ืืกืฃ ืืฆืืื ืืืืฉ ืืืืจื ืื ืืืฉืงืขื ืืกืชืืืืช ืืืคืฉืจ ืืืื ืืช ืืืืืื ื. ืื ืืื ืืื ืืืืจื ืืื ืืช ืืช ืืจืืืช ืืงืื ืื ืืคืกืืงื ืืื ืืช ืืกืืืืช ืื ืืื ืืืชืืื ืืืื ืืช ืืืืจื. ืฉืื ืื ืกืื ืื ืืืื ืืขืืืช ืืืช ืื ืืืื ืืืขื ืกืืื, ืื ืฉืขืืืจ ืืชืืื ื ืืจืืื ืื ืืชืื ื ืืื ืืื "ืืืืืจ" ืืช ืืชืฉืืื ืืืืชืืื ืืืืื ื'ืื ืง. ืืืช ืคืฉืื ืื ืืืืจื.
ืืืืืจื ืืืฉืงืขืืช ืืจืืขืืช - ืื ืงืืจืก ืืื ืืืืื ืฉื ืืงื, ืื ืืื ืืืืืื ืฉื ืืืจ ืืืืื, ืืื ืืฉืงืขื ืืจืืขื. ืจืื ืืืื ืืืืืืืช ืืคืืคืืืจืืืช ืืืื ืื ืืืื ืืืชื ื ืขืื 5 ืฉื ืื, ืืืจืื ืืื ืืืจืฉืืช ืืื ืืืืื ืฉื ืืื ืืืืฉืื ืืฉืืื ืืืืืข ืืจืื ืืืื. ืื ื ืื ืืฉืื ืืื ืืฉืืชื ืืฆื ืฉื ื ืืืืื ืืื ืืืชืื ืืคืืืงืฆืืืช ืืืืคืื ืื ืฉื ื ืืงืื, ืจืง ืืฉืืื ืืืชืขืืจืจ ืฉื ืชืืื ืืืืืจ ืืืชืจ ืืขืืื ืืื ื ืืงืื ืืืื ืืืจ ืืืื ืืคืืชืื ืฉืืื. ืื ืืืืจื ืฉื ืืืฉืงืขื ืืืชื ืืืฉืื ืืืืื ืืช ืืืฉื ืฉืชืฉืจืช ืืืชื ืืฉื ืื ืงืืืื ืื ืืืชื ืืืฉืงืขื ืืืจืืขื ืืืืชืจ ืฉืืคืฉืจ ืืืืืื.
ืฉืืื ืืืชืจ ืืืฉืื ืขื ืืืืืื ืชืื ืืช ืืชืืจ ืืืืจืช ืกืื ืื ืืืื - ืืืง ืืกืื ืื ืืืืื ืฉื ืื ืฉืื ืฉืขืืืืื ืืชืืื ืืื ืืืืื ืื ืืืื ืืื ืืืืืืืช ืืืฉืืช ืืื ืืจืืืช ืืืชื ืืชืืช. ืืืขืื ืืขืืื ืื ืืืืืจ, ืืฃ ืคืขื ืื ืืืื ืืื ืืกืคืืง ืืืข ืืฉืืื ืฉืชืืืื ืืืคืกืืง ืืืืื, ืืื ืฉืืฃ ืคืขื ืื ืชืืืื ืืกืคืืง ืืืื ืืจืื ืืฉืืื ืฉืืคืฉืจ ืืืื ืืืืืจ ืืืืื ื'ืื ืง. ืืืืจื ืฉื ืืืืืื ืืื ืื "ืืืืืจ ืขื ืื" ืืืืชืืื ืืขืืื, ืืื ืืืืื ืืื ืืืื ืืช ืืื ื ืืืฉืื ืืืชื ืืืื ืืื ืฉื ืืืืื.
1 421
# ืืืค ืืจืืืืง - ืขืืืื ืขื actors ืืกืื ืืจืื ืืื
ืืจืืืืง ืืื ืกืคืจืื ืืืจืฆืช ืืฉืืืืช ืืจืงืข ืืคืืืชืื. ืืื ืืืื ืืืื ื celery ืืื ืงืฆืช ืืืชืจ ืืชืืืืงืช ืืืืืขืช ืืขืืื ืืื ืืืชืจ ืขื ืืฉืืืืช ืฉืฆืจืื ืืชืืื ืืฉืขื ืืกืืืืช ืืขืชืื. ืคืืขื ืฉื ืืจืืืืง ืืจืืฅ Threads, ืืื Thread ืืืืข ืืืจืืฅ ืคืื ืงืฆืืืช ืฉื ืงืจืืืช Actors. ืืืืืช ืืงืื ืืืื ืืืืชืจ ืฉืืื ืืจืื ืืื ืืืฉืื ืืฃ ืืื ืืจื ื ืืืกืคืืจ ืืื ืืืืื ืืฉ ืื:
## ืงืื ืืืืืื
import dramatiq
import requests
@dramatiq.actor
def count_words(url):
response = requests.get(url)
count = len(response.text.split(" "))
print(f"There are {count} words at {url!r}.")
# or send the actor a message so that it may perform the count
# later, in a separate process.
count_words.send("http://example.com")
ืืฉืืื ืฉ count_words ืืืืช ืืจืืฅ ืื ืืกืคืืง ืืืคืขืื ืืช ืืกืงืจืืคื. ืืฉ ืืืคืขืื ืื ืชืืืื ื ืคืจื ืฉืืจืืฅ ืืช ื Worker ืฉื dramatiq, ืืืช ืื ืขืืฉืื ืืืืฆืขืืช ืืคืขืื ืืืืื ื ืคืจื ืฉื ืืคืงืืื:
dramatiq main.py
ืืื ืื ืฉืืงืืืฅ ืืชืืื ืืช ืงืืจืืื main. ืขืืฉืื ืื ืคืขื ืฉืืจืืฅ ืืช main ืืืืื ืืฉื ื ืื ื ืืงืื ืืช ืืืืืขื:
There are 298 words at 'http://example.com'.
## ืชืจืืื ืืงืื ืืกืื ืืจืื ื
ืขื ืืคื ืืื ืืื ืืื ืื ืงืืจื ืื ืจืืฆืื ืืืจืืฅ ืงืื ืืกืื ืืจืื ื? ืื ืื count_words ืืืชื ืืฉืชืืฉืช ืืืฉื ื aiohttp ืืืงืื ื requests? ืื ื ืืขืืื ืืช ืืงืื:
@dramatiq.actor
async def count_words(url: str):
async with aiohttp.ClientSession() as session:
async with session.get(url) as resp:
response = await resp.text()
count = len(response.split(" "))
print(f"There are {count} words at {url!r}.")
asyncio.run(count_words("http://example.com"))
ืืืชืืื ืืช ืขืืืืช, ืืื ืืคืขืื ืืกืื ืืจืื ืืช ืืืจ ืื ืืืฉ:
count_words.send("http://example.com")
ืืืืขืช ืืฉืืืื ืฉืืืคืืขื ืขื ืืกื ื Worker ืืื:
/Users/ynonp/work/intel-dec-2020/dramatiq-demo/venv/lib/python3.10/site-packages/dramatiq/worker.py:460: RuntimeWarning: coroutine 'count_words' was never awaited
self.process_message(message)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
ืืืื ื ืชืงื ืืช ืื
## ืืืกืคืช ืชืืืื ืืคืื ืงืฆืืืช ืืกืื ืืจืื ืืืช ื dramatiq
ืืืื ืฉืืจืืืืง ืคืืชื Thread-ืื ืื ืืืืืฅ ืืคืชืื Event Loop ืืืฉ ืืชืื ืคืื ืงืฆืืืช ื Actor. ืืคืขืืื ืื ืืขืืื ืืื ืืคืขืืื ืื ืืืืฉื ืขื ืฉืืืืืช ืืืืจืืช. ืขืืืฃ ืืืขืืืจ ืืช ื Event Loop ืื Thread ืืจืืฉื ื Threadืฉืื ื, ืืืืจืืฅ ื Event Loop ืืจืืฉื. ืืื ืืื ื ืขืฉื ืืช ืื ืื ืืื ืื ื ืืืฉื ืืชืืืืืื ืืจืืฉื?
ืืกืชืืจ ืฉืืืจืกืืืช ืขืืื ืืืช ืฉื ืืจืืืืง ืืืกืืคื ืชืืืื ืืื ืื ืื ืื ืืืคืืื ืืฆืืจื ืคืฉืืื. ืืืจ ืจืืฉืื ืืฉ ืืืกืืจ ืืช ืืจืืืืง ืืืืชืงืื ืืช ืืืจืกืช ื master ืฉืื:
$ yes | pip uninstall dramatiq
$ pip install git+https://github.com/Bogdanp/dramatiq@master
ืืืืจ ืืื ืืฉ ืืืชืงืื ืืืืืืืจ ืฉื ืืจืืืืง ืฉืืจืืฅ ืืฉืืืืช ืืกืื ืืจืื ืืืช. ืื ื ืืขืืื ืฉืื ืืช ืืงืื:
import dramatiq
from dramatiq.middleware.asyncio import AsyncIO
from dramatiq.brokers.redis import RedisBroker
import requests
import aiohttp
import asyncio
import os
broker_url = os.environ.get("BROKER_URL", "redis://localhost:6379/0")
broker = RedisBroker(url=broker_url)
broker.add_middleware(AsyncIO())
dramatiq.set_broker(broker)
@dramatiq.actor
async def count_words(url: str):
async with aiohttp.ClientSession() as session:
async with session.get(url) as resp:
response = await resp.text()
count = len(response.split(" "))
print(f"There are {count} words at {url!r}.")
# asyncio.run(count_words("http://example.com"))
# Synchronously count the words on example.com in the current process
# count_words("http://example.com")
# or send the actor a message so that it may perform the count
# later, in a separate process.
count_words.send("http://example.com")
ืืื ืืื - ืืคืขืื ืืืืฉ ืืช ืืคืืขื ืฉื dramatiq ืืืืื ืืื ืืืฉืื ื ืืคืขืื ืืช ืืกืงืจืืคื ืขื ื Actor ืืืกืื ืืจืื ื ืืื ืขืืื ืืืจืืืืง ืืืืข ืืืจืืฅ ืืืชื ื Event Loop ืืจืืฉื ืฉื ืืชืืืื ืืืืืืช ืฉืืกืืื.1 421
# ืืคืจืคืงืฆืืื ืืกื ืืืืืคืจ
ืื ืืคืจืคืงืฆืืื ืืกื ืืื ืืืืคืจ ืื ืืฆืืืืื ืืืชืื ืงืื ืืกืคืืง ืืื, ืืื ืืกืืืืช ืืืจืืช.
ืืคืจืคืงืฆืืื ืืกื ืฆืจืื ืฉืืื ืืฉื ืืืงืื ืืคื ื ืฉืืื ืืืื ืืืชืืื ืืงืืื. ืืื ืืืื ืฉื IDE ืืืื ืืงืื ืคื ืืื ืฉืฆืจืื, ืฉืชืฉืชืืช ืืืืืงืืช ืืืืืืืืืืช ืชืขืืื, ืฉืืงืื ืืฉื ืืกืืืจ ืืคื ืืืชืืขื, ืฉืืืืกืืจืงืฆืืืช ืืืื ืืืืืง ื ืืื ืืช. ืคืจืคืงืฆืืื ืืกืืื ืืชืงืืืื ืืื ืืืขืืืื ืืืงืจืืช ืืื ืืชืืืช ืงืื ืขื ืฉืื ืืกืืืื ืืืจ ืืืฉืื ืืคืจืืืงื ืืฉื ื ืืช ืืขืชื ืืืจืื ืขืืืื ืชืืืจืง.
ืืืืคืจ ืืื ืืืืื ืฉื ืื ืืืฉ ืคืจืืืืงื ืื ืืชื ืืืื ืืืืจ ืืืชื ืืืืงืจ ืขื ืคืืฆ'ืจ ืืฉืขืชืืื ืืืจื ืื ืืื ืื ืื ืืืจ ืขืืื ืืคืจืืืงืฉื, ืืื ืืืื ืืืกืจ ืกืืจ ืืืื ืืจืื ืืืืื, ืืื ืื ืืฆืืื ืืขืืื ืืฆืืืช ืื ืขื ืืขืจืืืช ืืืจืืืืช ืืจืืจืกืืืช ืืงืจื ืื ืืืื. ืื ืืกืฃ ืืฆื ืฉื ื ืืชืื ืืคืจืืืงื ืืงืื ืืจืื ืืื ืขืจืืืช ืืืฅ ืขื ืงืืช ืฉืืืืฆื ืืืืื ืืื ื ืืืื ืืฉืืชื ืืช ืืื.
ืืจืืจ ืฉืื ืื ื ืื ืจืืฆืื ืืืชืงืื ืืืฃ ืืื ืืืงืฆืืืช ืฉื ืืกืงืืื ืืื ืืื. ืื ืื ื ืื ืจืืฆืื ืืืฆืื ืืงืื ืืื ืืืืฆืข ืืืืชืจ ืืขื ืืื - ืื ืื ื ืจืืฆืื ืืืชื ืกืืช ืืขืืืื ืืืชืจ ืคืจืคืงืฆืืื ืืกืืืช ืื ืืืชืจ ืืืคืจืืช ืืืืคื ืฉืืืฃ ืืืืงืื ืืคืจืืืงื ืฉืืืคืฉืจืื ืืช ืื. ืืืจื ืื ืืื ื ืืืกืชืื ืขื ืฉื ื ืืืืจ'ื ืืืื ืืื ืื ืืชืืจ ืฉืชื ืืคืฉืจืืืืช ืจืืืืืืช, ืืื ืืชืืจ ืืืืื ืืืืช ืฉืืืื ืืืืฉื ืืืื ืื ืืื ืืืืืื ืื ืืื ื: ืคืืชืืืื ืืกืืืืื ืืืจืฉืื ืืืงืจ ืืืืจ ืืืชืืืช ืงืื ืฉืืืืจืง, ืืคืืชืืืื ืืืจืื ืืืจืฉืื ืงืื ืืฆืื ืืชืฉืชืืืช ืฉืืืื ืืืชื ื ืืฉื ืื. ืืืืืฉืืช ืืืืฉืืชืืช ืืขืืืจ ืืื ืกืืื ืืขืืืื ืขืืืจืช, ืื ืืฉื ื ืขื ืืืื ืคืจืืืงื ืืชื ืขืืืืื ืขืืฉืื.
1 421
# ืคืขื ืืืช ืืกืคืืงื
ืคืขื ืืืช ืืกืคืืงื ืืฉืืื ืืฉื ืืช ืืช ืืืืฉื ืืืคืชืื ืืช ืืืืช ืืจืขืืื ืืืฉ.
ืืืจื ืฉืืชืืช ืืคืืงืืฆืื ืืืืืืื ืคืขื ืืืช, ืืฉื ืื ืชืจืืืฉ ืคืืืช ืืคืืืื (ืื ืื ืืงืื ืขืฆืื ืืืื ืฉืื ื ืืืืจื)
ืืืจื ืฉืืขืืจืช ืืจืฆืื ืืื ืก, ืืคืขื ืืืื ืืื ืงืื ืชืืื ืคืืืช ืืคืืืื (ืื ืื ืื ืืฉื ืืืื ืืืจ ืืืืจื)
ืืืจื ืฉืืืืช ื ืืฉื ืืืฉ ืืขืฆืื ืืจื ืงืืจืก ืืื ืืืื, ืืืื ืื ืืจืื ืืืชืจ ืงื ืืืืฉืื ืืงืืช ืงืืจืกืื ืืืืชืงืื ืืื.
ืื ืื ื ืืืืืื ืืืฉืืฉ ืืืฆืืื ืืืืืจ ืื ืืืืช, ืืื ืืขืฆื ืืืืจ ืื ืืืืช ืืฉืชื ื ืื ืืืื. ืืืืจ ืื ืืืืช ืฉื ืืืื ืืื ืื ืืืืจ ืื ืืืืช ืฉื ืืชืืื ืืื ืฉื ืฉื ื ืฉืขืืจื. ืคืขื ืืืช ืืกืคืืงื, ืืื ืกืืื ืืกืคืืง ืืืื ืืืคืฉ ืืืชื.
1 421
# ืขืฉืจ ืฉื ืื ืืืืืจ ืืืชืจ
ืื ืืื ืืจืืืฉ ืืืื ืื ืืคืืืจ ืืืงืื ืขืืืื ืืืจื ืขืฉืจ ืฉื ืื ืฉื ืขืืืื ืืืืชื ืืงืื. ืื ืืื ืืจืืืฉ ืืืืืื ืืืืฉืฉ ืืืื ืืชืืืื ืืืืขืืช ืืืฆื ืืื ืืื ืืืืฉืื ืืช ืืืืจืืข ืื ืงืืืชื: ืื ืจืง ืืืืจื ืืื ืขืื ืืกืฃ, ืื ืจืง ืืื ื"ื ืื ืืื ืืืงื ืืื ืืขืฆืื, ืื ืจืง ืืื ืืืจืืืื ืืฉืืืจืืช ืืืงืื ืืคืืจ, ืืืื ืืืืื ืฉืื ืืื ื ืฉืืจืื ืืืืื ืืฉืืื.
ืชืืืื ืืืืช ืืงืืืช ืืืืืง ืืืจื ืฉืืชืืืืื ืืืคืฉ ืขืืืื ืืืฉื ืืจืืืื ืฉืืฉืืง ืื ืืืื ืื, ืฉืืขืฆื ืืืืืื ืืืืช ืฉืื ืื ืืกืคืืง ืจืืืื ืืืืช ืืจืื ืืงืืืืช ืืขืืืื ืืฉืืืืื ืืืจ ืืฃ ืืื ืื ืจืืฆื ืืืืืก ืืืชื ืืืฉืจืช ืกืืืื ื ืืืืืืืกืื ืืืคืฉืื ืจืื ืืงืฆืืขืืช ืฉืชืืืืช ืืืื ืืื ืืกืืื.
ืืืืืืง ืืืฆืืื ืืืื ืืฉืื ืืฉืื ืื ืฉืืืขืื ืืื ืื ืืืืจื ืฉืคืฉืื ืจืื ืื ืืืืืงื ืฉื ืกืืจื. ืฉืืื ืืืกืชืื ืขื ืื ืฉืื ืืืจืื ืืืืชื ืืฆื ืฉืืืืงื ืื ืืฆืื ืืืจ ืขืืืื ืืืฉื, ืื ืืคืืื ืขื ืืืจืื ืฉืืืื ื ืฉืืืืจื ื ืื ืกืช ืืงืฉืืื ืืืจ ืืคื ื ืฉื ื ืืฉื ืชืืื ืืขืืื ืืชื ืืื ืฉืืื.
ืืืืจื ืฉืื ื ืืืชืื ืชืื ืืื ืืฉืืืจ ืขื ืจืืช ืืฉืืจืืช ืืืืื ืืื ืืฆื. ืืืืืจ ืฉืื ืืฉื ื ืืื ืืจืืืืชื ืื ืืืืื ืชืคืงืื ืืืืชื, ืืืจ ืืืืงืจ ืื ื ืืืื ืืืืืจ ืื ืงืืืช ืืืชืืื. ืื ืฉื ืฉืืจ ืืืชื ื ืืื ืขืืืืืช ืื ืืืืืื ืืช ืืืืงืฆืืขืืืช ืฉืื ื. ืืืืจื ืืื ืืื ืืืืจืื ืฉืื ืื ื ืืืืืื ืืฉืืจ ืืืฉืคืจ.
ืืืฉืจืืืื ืืช ืื ืื ืงื ืืืชืจ ืืืชืืืื ืขื ืืชืืืฉืืช ืืืืฆืื ืืช ืืืจื ืงืืืื: ืื, ืฆืจืื ืืืฉืืื ืขืฉืืจ ืฉื ืืชืงืืืืช ืืื ืืืืืืช ืฉืื ืืืืช ืชืงืืข ืืงืืืื ืขื ืืฉืืืจืช ืืืืื ืืืืจื ืฉืืืจ ืืืื ืื ืคืืชืื ืืืฆืจืื ืจืืืื ืืืื. ืื ืืืงื ืืื ืืขืืืื. ืืืืจื ืฉืชืกืืืจ ืืช ืืคืขืจ ืืชืืฆื ืืช ืืขืืืื ืืืื, ื ืกื ืืืฉืืืจ ืืช ืืจืืข ืืื ืฉื ืขืฉืจ ืฉื ืื ืงืืืื ืืชืืืขื. ืืฉืงืขืช ืขืืืื ืืืืืื ืืืื ืืื ืชืืคืื ืืช ืืืืคืืฉ ืืื ืืืจืื ืืืชืจ ืคืฉืื.
1 421
# ืืื Panda CSS ืืื ืืืืจ ืืืืื ืืื ืืขืืฆืื ืืจืืืงื?
ืคื ืื ืืื ืืืืื ืื ืื ืฉืืคืฉืจ ืืืืืื ืืฉืืืฉืืื ืขื ืคืจืืืืืืจืง ื CSS in JS. ืืืชืจืื ืืืืื ืฉืื ืืื ืืชืืืื ืืืืื ืืงืืืคืื ื ืืืช ืฆื-ืฉืจืช, ืืืืืจ ืืื ืืืช ืื ืืืืจืืช ืืขืืฆืื ืืฆื ืืชืืจ ืงืืืกืื ืืฉืืืืฉ ืืืืืืื ืืงืืืกืื ืืื ืืชืื ืืงืื, ืืกืื ืื Tailwind CSS. ืืื ืื ืืืื ืืืืืืืืื ื, ืคื ืืฉ ืื ื ืื ืืืืืจ ื TypeScript ืืื ืืงืื ืืฉืืื ืืืืืืช ืืืคืืกืื ืขื ืืืื ืืขืืฆืื ืืืื ืืืจืฆืื ืืืื ืขื ืจืืืงื ืืื ืืืืฆืจ ืขืืฆืืืื ืืชืื ืงืื.
ืืืื ืฉืืืืจืื ืงืื ืฉืืื ืืืชืจ ืืืืฃ ืืืืื, ืื ืื ื ืืืืื ืงืื ื ื Panda ืืงืืืคืื ื ืืช ืจืืืงื:
function App() {
return (
<div className={css({ background: 'red.400'})}>
<div className={css({ fontSize: "2xl", fontWeight: 'bold' })}>Hello ๐ผ!</div>
</div>
)
}
ืื ื ืืฉืชืืฉ ืืคืื ืงืฆืื css ืืืขืืืจ ืืช ืขืจื ืืืืจื ืฉืื ืืชืืจ className. ืืืืคื ืืืืืืื ืคื ืื ืืืืฆืจ ืงืืืก ืฉืืฉ ืื ืืช ืืืืจืืช ืืขืืฆืื ืฉืืชืืชื ืืืคืื ืงืฆืื ืืืืืจื ืืช ืฉื ืืงืืืก. ืืืืื ืืืงืืืคืื ื ืื ืชืจืื ืืจ ืืฆื ืฉืจืช, ืื ื HTML ืฉืืืฉืื ืืืงืื ืืืื ืืืฉ ืืช ืฉืืืช ืืงืืืกืื ืฉื'ืื ืจืื ืืื ืืืืฉืื ืืืืืื ืืจืืืช ืืช ืืขืืื ืขื ืืขืืฆืื ืื ืืื JavaScript.
ืืืืืื ืฉื ืื ืงืฆืช ืืืชืจ ืืชืืืืืช-
function App() {
const [clicked, setClicked] = useState(false);
return (
<div>
<button
className={css({
color: {
base: 'blue',
_hover: 'green',
},
cursor: 'pointer',
background: '#dadada',
padding: '10px',
borderRadius: '5px',
})}
onClick={() => setClicked(true)}
>
Click Here
</button>
<p className={css({
color: clicked ? 'green' : 'red'
})}>{clicked ? 'Passed' : 'Failed'}</p>
</div>
)
}
ืืืคืชื _hover ืืืืืจ ืขืจื ืขืืฆืื ืฉืืคืขื ืืฉืืืืื ื ื ืืฆื ื hover, ืืืื ืืขืื ืืชืื ืืืืืืงืืื ืฉื ืืขืืฆืื ืืืืืง ืขืจืืื ืฉื ืืฉืชื ื JavaScript.
ืืื ืืฉืืง ืขื Panda ืชืฆืืจืื ืงืืื ืืืืกืืฃ ืืืชื ืืคืจืืืงื ืจืืืงื ืฉืืื. ืืื ืืืืจืืืช ืืคืจืืืงื ืฉืื ืื ื Vite:
https://panda-css.com/docs/getting-started/vite1 421
# ืืื ืฉื ืคืืืชืื - ืืคืืจืฉ ืืื ืืืชืจ ืืืืืืข
ืื ืืืืืืจ ืฉืื ืจืืืื ืืชื ืขื ืืื ืฉื ืคืืืชืื ืืืื ืคืืืชืื ืืื ืฉืคื "ืืคืืจืฉืช" ืืืื ืืจืื ืืืฆืืื ืืืืื, ืื ืืืื ื Ruby ืื JavaScript. ืืืช ืืืืืืืืช ืฉื ืืืชื ืฉืืคืืืชืื ืื ืื ื ืชืืื ืืืืขืื ืื ืืืื ื self, ืื ืืืื ื JavaScript ืฉืืืืื ืืืคืชืืข ืขื this ืืืื ืจืืฆื. ืืืื ื ืคืจืง ืืช ืืืขื ื ืืืืช ืื ืืืืง ืืชื ืื ืคืืืชืื ืืืืื ืืืคืชืืข.
## ืงืฉืืจื ืืื ืืืช ืฉื this
ื ืชืืื ืืืชืืื, ื JavaScript ืื ื ืืืื ืืืชืื ืงืืืก ืขื ืืชืืืืช ืืืืคื ืืื:
class Foo {
constructor(name) {
this.name = name;
}
hello() {
console.log(`Hello ${this.name}`);
}
}
ืืื ืืืฉืชืืฉ ืื ืขื:
const f = new Foo("ynon");
f.hello();
ืืืื ืืขืืื ืืืืงืกื ืื ืืื ืืืืคืก. ืืืขืื ืฉืืืืืืจ ืืื ืืคืื ืงืฆืื hello ืืงืืืก Foo ืืื ืืืืืจ ืืืฉ. ืืื ื ืงืืข ืืืื ืืืคืขืื ืฉื ืืคืื ืงืฆืื ืืงื ืืืคืขืื ืืช ืืืชื ืคืื ืงืฆืื ืืฆืืจื ืืืจืช ืืื ืืฉืืืจ ืืช ืืืืืืฉ ืฉืื. ืืืืื ืงืื ืืื ืืงืจืืื:
const x = f.hello;
x();
ืฉืืคืขืืื ืืช ืืคืื ืงืฆืื ืขื undefined ืืชืืจ this ืืืื ืืืจืงืช Exception, ืื ืืงืจืืื:
const bar = { name: 'tony' };
f.hello.call(bar);
ืฉืคืฉืื ืืคืขืืื ืืช ืืคืื ืงืฆืื ืขื ืืืืืงื this ืืืจ. ืืืืคื ืจืืื ืืคืืคื ืื ืืฉืชืืฉืื ืืืื ืืืจืืง ืืื ืืืืืื ืืงืื ืฉืืืคื ืืืืจืืขืื, ืฉื ืืืฉืชื ื this ืืืื ืืืจื ืืื ืืืืืืงื ืฉืืจื ืืืืจืืข, ืืื ืงืฉืจ ืืงืืืก ืฉืืชืืื ืืืืืจื ืืคืื ืงืฆืื.
## ืงืฉืืจื ืงืฉืืื ืฉื this ืขื bind
ืืคืื ืงืฆืื bind ื JavaScript, ืื ืืืืจื ืฉื ืคืื ืงืฆืืืช ืืฅ, ืืืืืจืืช ืืืืืจ ืืกืื ืืืจ ื this. ื ืฉืื ืื ืืงืื ืืื:
class Foo {
constructor(name) {
this.name = name;
}
hello = () => {
console.log(`Hello ${this.name}`);
}
}
const f = new Foo("ynon");
const x = f.hello;
x();
const bar = { name: 'tony' };
f.hello.call(bar);
ืืคืขื ืืื ืชืงืื ืืฉืชื ืืงืจืืืืช ืืืคืืกืืช ืืช ืืืงืกื Hello ynon. ืืขืฆื ืืืชืืืช ืงืื JavaScript ืื ืื ื ืฆืจืืืื ืืืืืจ ืืืืื ืกืื binding ื ืจืฆื ืืืฉืชืืฉ, ืืฉืืฉืคื ืชืืืืช ืืฉืชื ืืืคืฉืจืืืืช ืืื ืืจืืจืช ืืืืื ืฉืื ืงืฆืช ืืคืชืืขื.
## ืงืฉืืจืช ืคืื ืงืฆืืืช ืืืืืงืืช ืืคืืืชืื
ืืื ืื ืืื ื ืืืืจ ืขื JavaScript ืืื ืขื ืคืืืชืื - ืืื ืคืืืชืื ืืื ืืืืช ืืืชืจ Explicit ืื ืืืชืจ Implicit ืืืืื ืฉื ืงืฉืืจืช ืคืื ืงืฆืืืช ืืืืืงืืช?
ื ืชืืื ืืืชืื ืืจืืจืช ืืืืื:
class Foo:
def __init__(self, name):
self.name = name
def hello(self):
print(f"Hello {self.name}")
f = Foo("ynon")
f.hello()
ืืงืื ืืืขื ืืืขืชืง ื JavaScript ืืขืืื ืืืชื ืืืจ. ืืฉื ื ืกื ืืืคืขืื ืืช ืืคืื ืงืฆืื ืืจื ืืฉืชื ื ืืืจ ื ืจืื ืฉืืคืื ืงืฆืื "ืืืืืจืช" ืืืืืงื Foo ืืืงืื ืขืืืื ืืขืืื:
x = f.hello
x()
## ืงืฉืืจื ืืืฉื ืืคืืืชืื
ืืื ืคืืืชืื ืชืืืืช ืื ืืืชืื ืืฉื ื ืฉื ืงืฉืืจื ืืืฉื, ืืคืืืช ืกืื-ืฉื. ืืฉืื ืืืืืื __func__ ืฉื ืืชืืื ืืืืืจ ืืช ืืคืื ืงืฆืื ืฉืืืืฉืช ืืืชื, ืืื ืงืฉืจ ืืืืืงื ืืื ื ืืืืขื. ืืคืื ืงืฆืื __get__ ืฉื ืืืชื ืคืื ืงืฆืื ืงืืฉืจืช ืืช ืืคืื ืงืฆืื ืืืชืืื ืืืฉื, ืืืื ืฉื ืืืืืงื ืืืจ. ืืืื ืืงืื ืืื ืืืคืืก Hello tony:
class Foo:
def __init__(self, name):
self.name = name
def hello(self):
print(f"Hello {self.name}")
class Bar:
def __init__(self):
self.name = "tony"
f = Foo("ynon")
b = Bar()
x = f.hello.__func__.__get__(b, Bar)
x()
ืื ื ืืื ืืกืคืจืืืช ืืืืื ืืช ืืคืืืชืื ืขืืฉืืช ืฉืืืืฉ ืคืืืช ื ืจืื ืืืื ื ืื ืืขืืืช ืืคืืคื, ืืื ืืื ื JavaScript ืื ืืคืืืชืื ืื ืื ื ืืืืืื ืืืืืจ ืืืื ืกืื ืืืืืจ ื ืจืฆื ืืื ืืคืื ืงืฆืื ืืืืืงื ืืืืืืจ ืืืื ืืงืจืืื ืืคืื ืงืฆืื ืื ืืืื ื self ืฉืืื ืชืจืื. ืคืืืชืื ืืกื ืืื ืืกืชืืจื ืืช ืืคืืฆ'ืจ ืืื ืงืฆืช ืืืชืจ ืืื.1 421
# ืืืขืืืช ืืช ืืกืื ืืจืืื
ืืื ืกืคืง ืฉืื ืงืื ืื ืขืืื ืืื ืฉืฆืจืื ืื ืื ื ืื ืฆืจืืืื ืืืื ืืก ืืืชื ืืืขืจืืช. ืืื ืืจืื ืคืขืืื ืืกืื ืืจืืื ืฉืื ื ืืืชืจ ืืืืืื. ืืืื ื ืืืจ ืขื ืจืืืงื ืืฉืืื ืืืืืื ืื ืกืชืื ืขื ืืงืื ืืื:
import "./styles.css";
function Counter() {
function handleClick() {
const btn = document.querySelector(".counter button");
const count = Number(btn.textContent);
btn.textContent = count + 1;
}
return (
<div className="counter">
<button onClick={handleClick}>0</button>
</div>
);
}
export default function App() {
return (
<div className="App">
<Counter />
</div>
);
}
ืืงืื ืขืืื - ืืื ืืจืื ืืคืชืืจ ืขื ืืืกืคืจ 0 ืืืฉืืืืฆืื ืขื ืืืคืชืืจ ืืืกืคืจ ืขืืื ืืคื ืืกืคืจ ืืืืืฆืืช. ืื ืืคืืืงืฆืื ืืขื ืืื ืช ืืืืืื ืืื ืขืืืืช. ืืืืจืืช ืฉืืื ืขืืืืช ืืฉ ืื ืืขื ืกืืืืช ืืืืื ืื ื ืจืฆื ืืืชืื ืื:
1. ืืงืื ืื ืืฆืื - ืื App ืืฉืชื ื, ืืืฉื ืื ืืืกืืคื ืขืื Counter, ืื ืืื ืืื ืืคืกืืง ืืขืืื ืืืื ืืฉืืืืฉ ื document.querySelector. ืืืชืจ ืืื, ืื ืืืกืืคื ืืฉืชื ื State ืื Props ื Counter ืื ืืจืื ืืืจ ืืื ืืขืจื ืฉืืชืื ืืืคืชืืจ ืืืืืง.
2. ืืงืื ืืขืืื ืกืื ืืจืืื ืื ืืืืื - ืืื ืฉืืงืื ืืืขืชืง ืืืืชืจ ืืงืืืืช ืืืขืจืืช (ืืื ืฉืงืืจื ืืงืื), ืืืืืช ืืงืื ืืืืื ืืืขืจืืช ืชืจื. ืื ืฉืืชื ืืืชื ืืืืจืืจ ืื ืืืื ืืกืคืืง ืืช ืจืืืงื.
3. ืืงืื ืงืฉื ืืืฆืข ืืงืื ืฉืื ืืืื ืงืื ืื ืืืืืื ืืื, ืืืฉื ืืฉืืื ืืืฆืื ืืช ืืขืจื ืฉื ืืืคืชืืจ ืืืงืืืืช ื ืืกืคืื ืืงืืืคืื ื ืื ื ืฆืืจื ืืขืืื ืื ืืช ืืคืื ืงืฆืื handleClick ืืื ืืช ืืคืื ืงืฆืื ืืจืืฉืืช Counter.
ืจืง ืฉืืืฉืช ืืกืืืืช ืืืื ืืกืคืืงืืช ืืฉืืื ืืฉืืชื ืืช ืืงืื ืืืงืื ืืืคืฉืจื. ืื ืืื ืฉืงืื ืืื ื ืฉืืจ ืืืขืจืืช, ืืื ืคืืืข ืื ื ืืืืืจืื ืฉืื ื ืืฆืืืช. ืืืจืืจ, ืื ืืืืชื ืืืชืืื ืืช ืืงืื ืฉืืืืงืชื, ืืฉืืื ืืื ืคืขืืื ืืชื ืืื ืืกืื ืืืขืจืืช ืงืื ืฉืืชื ืื ืืืื ืื ืขื ืืกืืฃ? ืืื ืคืขืืื ืืชื ืืฉืืืจืื ืงืื ืจืง ืืืื ืฉืืื ืขืืื? ืืืื ืื ืืืืข ืืืื ืืืขืืืช ืืช ืืกืื ืืจืืื?
Endi mavjud! Telegram Tadqiqoti 2025 โ yilning asosiy insaytlari 
