Python nesne türü

Python işlevleri ve meth

“tür” Python'da türü veri türü olan bir değeri belirten özel bir anahtar sözcüktür. Veri türü “type” olan bir nesneden bir değere erişmeye çalışırsanız, “TypeError: ‘type’ nesne abone olunamaz” error.

Bu kılavuz, bu hatanın ne anlama geldiğini ve neden görebileceğinizi açıklar. Bu hatanın bir örneğinde size yol gösterir, böylece her ortaya çıktığında hatayı nasıl düzelteceğinizi öğrenebilirsiniz.




TypeError: ‘type’ nesne abone olunamaz

Python bir dizi veri türünü destekler. Bu veri türleri, farklı niteliklere sahip değerleri depolamak için kullanılır. Tamsayı veri türü, örneğin, tam sayıları saklar. Dize veri türü, bir kişiyi veya karakter kümesini temsil eder.

Her veri türünün bir “türü” nesne. Bu nesne, değerleri belirli bir veri türüne dönüştürmenize veya belirli bir veri türüyle yeni bir değer oluşturmanıza olanak tanır. Bunlar “tür” nesneler şunları içerir:

Şunu işaretlerseniz “tür” bu değişkenlerin “type” olduğunu göreceksiniz. nesneler:

print(type(int))

Sonuç “type”.

Bir “type” nesne çünkü herhangi bir değer saklamazlar. Bunlar, belirli bir veri türü için referanstır.




Örnek Senaryo

Fişin yazdırılabilmesi için bir bilgisayar donanım mağazasında yapılan satın almayla ilgili bilgileri görüntüleyen bir program oluşturun. dışarı. Satın alma hakkında bilgi içeren bir liste tanımlayarak başlayın:

Katılımcıların %81'i teknoloji işlerinden daha emin hissettiklerini belirtti. Bir bootcamp'a katıldıktan sonra beklentiler. 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 daha az zaman harcadı.

Bu listedeki değerler temsili , sırayla:

  • Müşterinin satın aldığı öğenin markası
  • Ürünün adı
  • Ürünün fiyatı
  • Müşterinin mağazanın sadakat kartı programının bir üyesi olup olmadığı

Sonra, bu satın almayla ilgili bilgileri konsolda görüntülemek için print() ifadelerini kullanın:

print("Marka: " + satınalma[0]) print("Ürün Adı: " + satın alma[1]) print("Fiyat: $" + str(purchase[2]))

Marka, ürün adı ve fiyat değerlerini konsola yazdırıyorsunuz. kullanıcının her bir değerin neyi temsil ettiğini anlamasını kolaylaştırmak için bu değerlere etiketler eklendi.

Satın alma[2] öğesini str() kullanarak bir dizeye dönüştürün çünkü bu değer bir kayan noktalı sayı olarak depolanır ve dizeleri yalnızca diğer dizelerle birleştirebilirsiniz.

Sonra, kullanıcının mağazanın bağlılık kartı programının üyesi olup olmadığını kontrol edin. bunu yapın çünkü bir müşteri üye değilse, o zaman sadakat kartı programına katılmak isteyip istemedikleri sorulmalıdır:

satın alırsanız[3 ] == False: print("Sadakat kartı programımıza katılmak ister misiniz?") else: print("Sadakat kartı programımıza üye olduğunuz için teşekkür ederiz. Mağazamızda yaptığınız satın alma işlemi için 10 puan kazandınız.")

Bir kullanıcı sadakat kartı programına üye değilse, “if” ifadesi çalışır. Aksi takdirde, else ifadesi çalışır ve kullanıcıya satın alma işlemi yaptığı için teşekkür edilir.

Çalıştır kodunu girin ve çalışıp çalışmadığını görün:

Kodumuz bir hata döndürüyor.




Çözüm

Hatalı kod satırına bir göz atın:< br>

print("Marka: " + satın alma[0])

“abone olunabilir” mesajı, bir nesneden dizin oluşturmayı kullanarak bir değere, sanki bir dize, liste veya demet gibi bir dizi nesnesiymiş gibi erişmeye çalıştığınızı söylüyor. bir “type” nesnesinden indeksleme kullanarak bir değere erişin. Buna izin verilmez.


Bu hata, “satın alma” listesini liste yerine bir tür nesnesi olarak tanımladığınız için oluştu. Bu hatayı çözmek için, “type” listemizde:

purchase = ["Steelseries", "Rival 600 Gaming Mouse", 69.99 , True]

Liste bildirmek için “type” kullanmanıza gerek yoktur. Bir nesnenin değerini kontrol etmek için yalnızca “type” kullanmanız yeterlidir. Kodumuzu çalıştırın ve neler olduğunu görün:

Marka: Steelseries Ürün Adı: Rival 600 Oyun Faresi Fiyat: $69,99 için teşekkürler sadakat kartı programımıza üye olmak. Mağazamızdan yaptığınız alışveriş için 10 puan kazandınız.

Kod, bilgileri yazdırır satın alma hakkında. Ayrıca müşterinin bir sadakat kartı üyesi olduğunu ve bu nedenle mağazada yaptığı satın alma işlemi için puan kazandığını bildirir.




Sonuç

“TypeError: ‘type’ nesne abone olunamaz” veri türü “type” olan indekslemeyi kullanarak bir nesneye erişmeye çalıştığınızda hata oluşur. Bu hatayı çözmek için, dizin oluşturmayı kullanarak yalnızca demetler ve dizeler gibi yinelenebilir nesnelere erişmeye çalıştığınızdan emin olun.

Artık bu hatayı bir Python uzmanı gibi çözmeye hazırsınız!





Python nesne türü: StackOverflow Questions

Tutorials