Python çağrılabilir

Python işlevleri ve meth

Python'da küme parantezlerinin özel bir anlamı vardır. Bir işlev çağrısını belirtmek için kullanılırlar. Aralarında operatör olmayan bir tamsayıdan sonra bir çift küme parantezini belirtirseniz, Python bir işlevi çağırmaya çalıştığınızı düşünür. Bu, bir “TypeError: ‘int’ nesne çağrılabilir değil” error.

Bu kılavuzda, bu hatanın ne anlama geldiği ve neden ortaya çıktığı hakkında konuşuyoruz. Kodunuzda buna neyin sebep olduğunu anlamanıza yardımcı olmak için bu hatanın iki örneğini inceliyoruz.




TypeError: ‘int’ nesne çağrılabilir değil

Python işlevleri küme parantezleri kullanılarak çağrılır. “calculate_tip”:

calculate_tip(5) adlı bir işlevi çağıran bir ifadeye bakın. , 10)

Bu fonksiyon iki parametre kabul eder. Parametre olarak belirlediğimiz değerler 5 ve 10'dur. Kıvrımlı parantezlerin bu özel anlamı olduğundan, bunları bir tamsayı çağırmak için kullanamazsınız.

Geliştiricilerin bir sayı çağırmaya çalıştığı en yaygın iki senaryo. tamsayı şu durumlardadır:

Bu senaryoların her birini inceleyelim karşılaştığınız hatayı düzeltmenize yardımcı olacak birer birer.




Senaryo 1: Fonksiyonun Tamsayı Değeri Var

Bekleyen personelin tüm ipuçlarının toplamını hesaplayan bir program yazın. bir restoranda bir günde aldı. Bir ipuçları listesi ve bu ipuçlarının kümülatif değerini depolayacak bir değişken bildirerek başlıyoruz:

all_tips = [5, 10, 7.50, 9.25, 6.75] sum = 0

Sonra, sum() yöntemini bekleyen personelin aldığı toplam ipucu sayısını hesaplamak için:

Katılımcıların %81'i bir eğitim kampına katıldıktan sonra teknik iş beklentileri konusunda daha emin hissettiklerini belirtti. Bugün bir eğitim kampı ile eşleştirin.

Ortalama bir eğitim kampı mezunu, bir eğitim kampına başlamaktan ilk işini bulmaya kadar, kariyer geçişinde altı aydan az zaman harcadı.

toplam( ) yöntemi, bir dizideki tüm değerleri toplar. Daha sonra konsola bahşişlerde ne kadar para kazanıldığını bildiren bir mesaj yazdırıyoruz. “sum” değerini dönüştürmek için str() yöntemini kullanırız. mesajımızı içeren dizeyle birleştirebilmemiz için bir dizeye.


Kodumuzu çalıştırın:

Geri izleme (en son çağrı): Dosya "ana .py", satır 4, 'de sum = sum(all_tips) TypeError: 'int' nesnesi çağrılabilir değil

Kodumuz, adında bir değişken atadığımız için bir hata döndürüyor. Bir tamsayı değeri depolayan “sum”. Bu değişkeni atamak, yerleşik sum() yöntemini geçersiz kılar. Bunun anlamı, sum() yöntemini kullanmaya çalıştığımızda , kodumuz şunları değerlendirir:

total_tips = 0([5, 10, 7.50, 9.25, 6.75])

“sum” değişkenini yeniden adlandırarak bu hatayı düzeltebiliriz:

all_tips = [5, 10, 7.50, 9.25, 6.75] total_tips = 0 total_tips = toplam(all_tips) prin t("Bugün kazanılan toplam bahşiş tutarı $" + str(total_tips) +".")

“sum” değişkenini yeniden adlandırdık. için “total_tips”. Kodumuzu tekrar çalıştıralım:

Bugün kazanılan toplam bahşiş tutarı 38,5 dolardır.

Kodumuz başarılı bir şekilde çalışıyor!




Senaryo 2: Bir Matematiksel Operatör Eksik

Bir sayının bu sayı artı bir ile çarpımını hesaplayan bir program yazın. Örneğin, programımızda 9 belirtirsek, 9 ile 10'u çarpar.

Kullanıcıdan bir sayı girmesini isteyerek başlayın:

start_number = int(input("Hangi sayıyı çarpmak istersiniz? "))

Sonra, “start_number” Bu değerden bir numara büyük değişken:

new_number = start_number (start_number + 1) print("{} ile {} çarpımı {} olur.".format(start_number, start_number + 1, new_number))

Bizim kod, matematik sorumuzun cevabını bize bildiren bir mesaj yazdırır. Kodumuzu çalıştırın ve ne olduğunu görün:

Hangi sayıyı çarpmak istersiniz? 9 Geri izleme (en son yapılan arama): Dosya "main.py", satır 3,  new_number = start_number (start_number + 1) TypeError: 'int' nesnesi çağrılabilir değil

Kodumuz yürütmeyi bitirmiyor. Bunun nedeni, kodumuzda bir operatörü unutmuş olmamızdır. “yeni_numaramızda” kod satırı, bir çarpma operatörü belirtmemiz gerekiyor. Bunun nedeni Python'un köşeli parantezleri ve ardından bir değeri bir işlev çağrısı olarak ele almasıdır.


Kodumuza bir çarpma operatörü (*) ekleyin:

new_number = start_number * (start_number + 1)

Şimdi, kodumuz çalışmalı:

Hangi sayıyı çarpmak istersiniz? 10 10'un 11 ile çarpımı 110'dur.

Kodumuz beklenen yanıtı verir.




Sonuç

Bir tamsayı çağırmaya çalıştığınızda “TypeError: ‘int’nesne is not callable” hatası oluşuyor.

Bu olabilir. bir hesaplamaya matematiksel bir operatör eklemeyi unutursanız Bu hata, kodunuzda daha sonra kullanacağınız round() veya sum gibi yerleşik bir işlevi yanlışlıkla geçersiz kılarsanız da oluşabilir. ().
 

Artık bu yaygın Python sorununu profesyonel bir geliştirici gibi çözmeye hazırsınız!





Python çağrılabilir: StackOverflow Questions

Tutorials