Python 3 yerleşik işlevler

Python işlevleri ve meth

Yerleşik bir işlevi çağırmak için parantez kullanmanız gerekir. Parantezler, işlev çağrılarını, dizin oluşturma gibi bazı nesneler üzerinde gerçekleştirilebilen diğer işlemlerden ayırır.

Yerleşik bir işlevi çağırmak için köşeli parantezler kullanmaya çalışırsanız, “ TypeError: ‘builtin_function_or_method’ nesne abone olunamaz” error. 

Bu kılavuzda, bu hatanın ne anlama geldiği ve bu hatayla neden karşılaşabileceğiniz hakkında konuşuyoruz. Hatayı nasıl çözeceğinizi bulabilmeniz için bir örnek üzerinden gideceğiz.




TypeError: ‘builtin_function_or_method’ nesne abone olunamaz

Yalnızca yinelenebilir nesneler abone olunabilir. Yinelenebilir nesnelerin örnekleri arasında listeler, dizeler ve sözlükler bulunur. Bu nesnelerdeki bireysel değerlere indeksleme kullanılarak erişilebilir. Bunun nedeni, yinelenebilir bir nesne içindeki öğelerin dizin değerlerine sahip olmasıdır.

Şu kodu göz önünde bulundurun:

languages ​​= ["English", "Fransızca"] print(languages[0])

Kodumuz “English” döndürür. Kodumuz, dizin konumu 0'daki öğe olan listemizdeki ilk öğeyi alır. Listemiz abone olabilir, bu nedenle köşeli parantez kullanarak erişebiliriz.

Yerleşik işlevler abone olunamaz. Bunun nedeni, dizin oluşturma kullanılarak erişilebilen nesnelerin bir listesini döndürmemeleridir.

“TypeError: ‘builtin_function_or_method’ nesne abone olunamaz” köşeli parantez kullanarak yerleşik bir işleve erişmeye çalıştığınızda hata oluşur. Bunun nedeni, Python yorumlayıcısının köşeli parantezleri gördüğünde, bir değerdeki öğelere, bu değer yinelenebilirmiş gibi erişmeye çalışmasıdır.

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ı.

Yapacağız. bir ev eşyası listesindeki tüm kayıtları başka bir listeye ekleyen bir program. Bir öğe, yalnızca o öğe stokta varsa sonraki listeye eklenmelidir.


Bir ev eşyası listesi ve stokta olanları saklamak için bir liste tanımlayarak başlayın:

homewares = [ { "name": "Gri Abajur", "in_stock": True }, { "name": "Black Wardrobe", "in_stock": True }, { "name": "Siyah Komidin", "in_stock": False } ] in_stock = []

“in_stock” listesi şu anda boş. Bunun nedeni, stokta hangi ürünlerin olması gerektiğini henüz hesaplamamış olmamızdır. listeye eklendi.

Sonra, “ev eşyaları” listesindeki öğeleri bulmak için bir döngü için kullanıyoruz Bu ürünleri “in_stock” listesine ekleyeceğiz:

h içinde ev eşyaları: if h["in_stock"] == Doğru: in_stock.append[h] print(in_stock)
 

“in_stock” öğesine bir kayıt eklemek için append() yöntemini kullanıyoruz. Bu öğe stokta varsa listeleyin. Aksi takdirde programımız “in_stock” liste. Programımız daha sonra “in_stock” list.

Kodumuzu çalıştıralım ve ne olduğunu görelim:

Geri izleme (en son arama): Dosya "main.py", satır 10,  in_stock.append[h] TypeError: 'builtin_function_or_method' nesnesi abone olunamaz

Kodumuz bir hata döndürüyor.

Python'un işaret ettiği kod satırına bir göz atın hataya:

 in_stock.append[h]

“in_stock” öğemize bir öğe eklemek için dizin oluşturma sözdizimini kullanmaya çalıştık. değişkeni listeleyin. Bu yanlıştır çünkü işlevler yinelenebilir nesneler değildir. Bir işlevi çağırmak için parantez kullanmamız gerekiyor.

Bu sorunu köşeli parantezleri parantezlerle değiştirerek düzeltiyoruz:

 in_stock.append(h)

Kodumuzu çalıştıralım:

[{'ad': 'Gri Abajur', 'in_stock': True}, {'name': 'Siyah Dolap', 'in_stock': True} ]

Kodumuz stoktaki ürünleri başarıyla hesaplıyor. Bu öğeler “in_stock” konsola yazdırılan liste.







Sonuç

Bir işlevi çağırmak için köşeli parantezler kullanmaya çalıştığınızda “TypeError: ‘builtin_function_or_method’nesne abone olunamaz” hatası ortaya çıkıyor.

Python köşeli parantezleri şu şekilde yorumladığından bu hata ortaya çıkıyor. yinelenebilir bir nesneden öğelere erişmenin bir yolu. İşlevler parantez kullanılarak çağrılmalıdır. Bu sorunu çözmek için, bir işlevi parantez kullanarak çağırdığınızdan emin olun.

Artık bu ortak sorunu çözmeye hazırsınız. Bir uzman gibi Python hatası!





Python 3 yerleşik işlevler: StackOverflow Questions

Tutorials