Sobes.tech
Junior

.py və .pyc faylları arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

.py — insan tərəfindən yazılmış və interpretator tərəfindən oxuna bilən Python mənbə kodudur. .pyc.py faylından interpretator tərəfindən tərtib edilmiş bayt kodudur və sonrakı işə salmaları sürətləndirmək üçün istifadə olunur.

Python interpretatoru, modul ilk dəfə idxal olunduqda .py fayllarını avtomatik olaraq .pyc-yə tərtib edir və onları saxlayır, beləliklə növbəti işə salışlarda yenidən tərtib etməyə ehtiyac qalmır. .pyc faylları __pycache__ qovluğunda və ya köhnə versiyalarda müvafiq .py faylının yanında saxlanılır.

# `.py` faylının nümunə məzmunu
def greet(name):
  print(f"Salam, {name}!")
# `.pyc` faylından bayt kodu (birbaşa oxuna bilməz)
# c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00s\x0e\x00\x00\x00d\x00\x00GHd\x01\x00k\x02\x00\x83\x01\x00\x00d\x02\x00R\x00\xfa\x0bgreet.py\x05\x00\x00\x00s\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00C\x00\x00\x00s\x05\x00\x00\x00\x83\x00\x00\x00\x00Sq\x00\x00\x00s\x0c\x00\x00\x00\\x01\x00\x00\x00\x00\x01\x00\x00\x00r\x02\x00\x00\x00r\x02\x00\x00\x00\xfa\x0b<frozen greet>\x01\x00\x00\x00s\x08\x00\x00\x00\xe9\x00\x00\x00\x00r\x03\x00\x00\x00r\x04\x00\x00\x00r\x0b\x00\x00\x00r\x04\x00\x00\x00N\x86\x04\x00\x00\x00GHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHG\x0c\x12\x00\x00\x00s\x00\x00\x00\x00

Xülasə:

Fayl Təsviri Məqsəd Oxunaqlıq
.py Mənbə kodu İnkişaf, loqikanın yazılması Yüksək (insan tərəfindən)
.pyc Tərtib olunmuş bayt kodu İşə salmanı sürətləndirmək Aşağı (maşın tərəfindən)

.pyc fayllarının mövcudluğu kodun icrasına təsir etmir, çünki interpretator onları yalnız modulların yüklənməsini optimallaşdırmaq üçün istifadə edir. Əgər .py faylı dəyişdirilərsə, .pyc faylı avtomatik olaraq yenidən yaradılır.