CodeGym /Kurslar /Python SELF AZ /Daxili funksiyalar

Daxili funksiyalar

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

1.1 Məşhur daxili funksiyaların siyahısı

Biz artıq bir çox daxili funksiya ilə tanış olmuşuq, amma mən sizə yaxın zamanda faydalı olacaq bir neçə funksiyadan danışmaq istəyirəm:

  • id()
  • hash()
  • dir()

Aşağıda onlara daha ətraflı nəzər salaq:

id() funksiyası

id() funksiyası unikal obyeсt identifikatorunu (əvvəlcə rəqəm) qaytarır. Bu identifikator tam ədəddir və obyektin mövcudluğu ərzində unikal qalır. Adətən identifikator obyektin yaddaşdakı ünvanına uyğun gəlir, baxmayaraq ki, bu Pythonun spesifikasiyasında zəmanət verilmir.

Obyektin unikal identifikatorunu istifadə etmək çoxlu əməliyyatları daha yaxşı anlamaq üçün yararlıdır, məsələn, obyektlərin harada təkrarlandığını və harada eyni obyekti göstərən referansların olduğunu anlamaq. Eyni obyektlərdə fərqli identifikatorlar olacaq, lakin eyni obyektə yönəlmiş referanslar eyni identifikatoru göstərəcək.

Proqramın debug olunması və Python-un yaddaşda obyektləri necə idarə etdiyini öyrənmək məqsədilə istifadə oluna bilər.


a = [1, 2, 3]
b = a
print(id(a))  # 'a' obyektinin identifikatorunu çıxarır
print(id(b))  # Eyni identifikatoru çıxarır, çünki 'b' eyni obyekti göstərir

hash() funksiyası

hash() funksiyası müəyyən obyekt üçün hesh-dəyəri (rəqəm) qaytarır, əgər obyekt hesh ediləbiləndirsə. Python-da hesh ediləbilən obyektlər dəyişməz olmalıdır və onların həyat dövrü ərzində sabit hesh dəyərinə sahib olmalıdır.

Məsələn, belə obyektlərə rəqəmlər, sətirlər və tuple-lar daxildir (əgər onların bütün elementləri də hesh ediləbiləndirsə). Hesh dəyərləri, sözlüklərdə və çoxluqlarda məlumatın sürətli axtarışı üçün istifadə edilir. Məlumatların axtarışı və saxlanmasında sürətli bərabərlik və unikal yoxlamalar üçün istifadə olunur.


print(hash("salam"))  # "salam" sətirinin hesh-dəyərini qaytarır
print(hash(42))       # 42 rəqəminin hesh-dəyərini qaytarır
print(hash((1, 2, 3)))  # (1, 2, 3) tuple-nın hesh-dəyərini qaytarır

Diqqət! Dəyişməz obyektlərin hesh dəyərləri onların həyat dövrü boyunca sabit qalır. Lakin dəyişən obyektlər, məsələn, siyahılar və sözlüklər hesh edilə bilən deyil və sözlük açarları və ya çoxluq elementləri kimi istifadə edilə bilməz.

dir() funksiyası

dir() funksiyası obyektin atribut və metodlarının siyahısını qaytarır. Əgər obyekt göstərilməyibsə, dir() indiki lokal sahədə olan adların siyahısını qaytarır. Bu funksiya obyektlərin strukturunu və onların atributlarını öyrənmək üçün faydalıdır.

Obyektin bütün atribut və metodlar siyahısını əldə etmək üçün istifadə olunur, bu da onun strukturunu və mövcud funksiyaları daha yaxşı başa düşməyə kömək edir. Tez-tez debug məqsədilə və obyektləri öyrənmək üçün istifadə olunur, xüsusilə sənədləşmə məhdud olduqda və ya əlçatan olmadıqda.


class MyClass:
    def __init__(self):
        self.name = "Aysel"
            
    def greet(self):
        print("Salam, " + self.name)
        
obj = MyClass()
print(dir(obj))  # 'obj' obyektinin atribut və metodlar siyahısını çıxarır
print(dir())     # Indiki lokal sahədə olan adların siyahısını çıxarır

1.2 Kolleksiyalarla iş

Kolleksiyalarla iş üçün bir neçə faydalı funksiyalar var. Ola bilər, onlar daha əvvəlki mühazirələrdə qeyd olunmuşdu, amma indi mən onları bir az daha ətraflı izah etmək istəyirəm.

  • zip()
  • min()
  • max()
  • sum()
  • count()

zip() funksiyası

zip() funksiyası bir neçə iterasiya olunan obyektləri (məsələn, siyahılar, korteclər, sətirlər) birləşdirir və korteclərin iteratorunu qaytarır. Hər kortec, bütün iterasiya olunan obyektlərdə eyni indeksdə olan elementləri ehtiva edir.

Tez-tez bir neçə iterasiya olunan obyektlərdəki məlumatları birləşdirmək üçün istifadə olunur, bu da onları rahat şəkildə eyni anda iterasiya etməyə imkan verir. Həmçinin, iki siyahıdan — biri açar, digəri dəyərlər üçün — sözlüklər yaratmaq üçün də istifadə olunur.


names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]
combined = zip(names, ages)
print(list(combined))  # Çıxış: [('Alice', 25), ('Bob', 30), ('Charlie', 35)]

max() funksiyası

max() funksiyası verilən iterasiya olunan obyektin və ya verilən arqumentlərin ən böyük elementini qaytarır. Müqayisə qaydasını təyin etmək üçün açar funksiyası da göstərə bilərsiniz.


numbers = [1, 2, 3, 4, 5]
print(max(numbers))  # Çıxış: 5
            
# Açar funksiyası ilə
words = ["apple", "banana", "cherry"]
print(max(words, key=len))  # Çıxış: 'banana'

min() funksiyası

min() funksiyası verilən iterasiya olunan obyektin və ya verilən arqumentlərin ən kiçik elementini qaytarır. Müqayisə qaydasını təyin etmək üçün açar funksiyası da göstərə bilərsiniz.


numbers = [1, 2, 3, 4, 5]
print(min(numbers))  # Çıxış: 1
        
# Açar funksiyası ilə
words = ["apple", "banana", "cherry"]
print(min(words, key=len))  # Çıxış: 'apple'

count() funksiyası

count() funksiyası iterasiya olunan obyektdə, məsələn, siyahıda və ya sətirdə elementin neçə dəfə daxil olduğunu saymaq üçün istifadə olunur. Siyahı, kolleksiya və ya iteratorda çağırılır.


numbers = [1, 2, 2, 3, 4, 2, 5]
print(numbers.count(2))  # Çıxış: 3
    
text = "hello world"
print(text.count("o"))  # Çıxış: 2

sum() funksiyası

sum() funksiyası iterasiya olunan obyektin bütün elementlərinin cəmini qaytarır. İstəyə görə başlanğıc dəyərini göstərə bilərsiniz, bu da cəminə əlavə olunacaq.


numbers = [1, 2, 3, 4, 5]
print(sum(numbers))  # Çıxış: 15
    
# Başlanğıc dəyəri ilə
print(sum(numbers, 10))  # Çıxış: 25
    

1.3 Kodun icrası

Və bir neçə daha funksiya, hansılar ki, yeni başlayan biri kimi sizə faydalı ola bilərlər:

  • eval()
  • exec()

Onlar güclü imkanlara malikdirlər, amma təhlükəsizlik baxımından risklərə görə diqqətli istifadə olunmalıdırlar. Hər bir funksiya haqqında ətraflı məlumat:

eval() funksiyası

eval(expression) funksiyası bir sətir qəbul edir və onu Python ifadəsi kimi icra edir. Bu ifadənin yerinə yetirilməsi nəticəsini qaytarır. Python kodu kimi mətn ifadələri hesab etmək üçün istifadə olunur.

Nümunələr:


x = 10
result = eval("x + 5")
print(result)  # Çıxış: 15

exec() funksiyası

exec() funksiyası bir sətir qəbul edir və onu Python kodu kimi icra edir. eval()-dan fərqli olaraq, hansı ki, yalnız ifadələri icra edir, exec() Python-un istənilən təlimatlarını, o cümlədən funksiyaların təriflərini, döngüləri və modul idxallarını icra edə bilər. Bu funksiya heç bir dəyər qaytarmır.

Dinamik skriptlərin icrası və proqramın icrası zamanı yeni funksiyalar və ya siniflərin təyin olunması üçün istifadə olunur.


code = """
def greet(name):
    print(f"Salam, {name}!")
        
greet("Alice")
"""
exec(code)
# Çıxış: Salam, Alice!

Diqqət! eval() kimi, exec() də etibarsız verilənlərlə işlədikdə təhlükəli ola bilər. Diqqətli olun və exec()-dən production-da kod icrası üçün çəkinin.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION