Nesneler için özel bir kapsayıcı türü olarak işlev gören yeni bir sınıf oluşturmak istiyorum ve köşeli parantez kullanarak erişilebilir. Örneğin, ListWrapper
adı verilen bir dersim olduğunu varsayalım. obj
'un ListWrapper
olduğunu varsayalım. obj[0]
derken, obj.access()
yönteminin argüman olarak 0 ile çağrılmasını beklerim. Sonra istediğimi geri verebilirim. Mümkün mü?Köşeli parantezlerle erişilebilen bir python nesnesi oluşturun
30
A
cevap
45
Özel __getitem__
[docs] yöntemini tanımlamak istersiniz.
class Test(object):
def __getitem__(self, arg):
return str(arg)*3
test = Test()
print test[0]
print test['kitten']
Sonuç:
000 kittenkittenkitten
7
Python'ın standart nesneler çoğunlukla dilde bir API içine kanca nesneleri oluşturmak için izin vermek için kullanılır __something__
adlı yöntemlerden bir dizi var. Örneğin __getitem__
ve __setitem__
, []
notasyonu ile değerlerin alınması veya ayarlanması için çağrılan yöntemlerdir. Burada Python sözlüğünün bir alt sınıfına benzeyen bir şeyin nasıl oluşturulacağına dair bir örnek var: https://github.com/wavetossed/mcdict
Aslında alt sınıf sözlüğü olmadığını ve ayrıca update
yöntemine sahip olduğunu unutmayın. Her ikiniz de sınıfınızın bir Python sözlüğü olarak düzgün bir şekilde maskelenmesini istiyorsanız gereklidir.
İlgili konular
- 1. HTML yorumları köşeli parantezlerle nasıl oluşturulur? <! - {{myModel.myProperty}} ->
- 2. Bir url yoluyla erişilebilen bir python modülü nasıl içe aktarılır
- 3. Köşeli 2: dinamik olarak div'ler oluşturun
- 4. Restct hizmetinden React.js içinde JSON Nesnesi Oluşturun
- 5. Python Dağıtımınızı Windows'ta Oluşturun
- 6. iOS'ta erişilebilen zaman etiketleri
- 7. javascript kullanarak c3js için bir json nesnesi oluşturun
- 8. Bahar Önyükleme testlerinde yayınlamak için bir JSON nesnesi oluşturun
- 9. Tek bir python yürütülebilir modül oluşturun
- 10. Python: Python sözlüklerinin bir listesini bir JSON nesnesi dizisine dönüştürme
- 11. anonim olarak erişilebilen bir Google Apps komut dosyasını dağıtılamıyor webapp
- 12. Python bir karakter arabelleği nesnesi bekleniyor
- 13. AngularJS: Bir hizmeti köşeli
- 14. Erişim diyagramının erişilebilen varlıklarla ilişkilendirilmesi
- 15. python nesnesi işaretçi verilerine erişme
- 16. Python Glade, GladeXML Nesnesi oluşturulamadı
- 17. Chrome Konsol Nesnesi Özellikleri Açı ve Köşeli Konsollarla Gösteriliyor
- 18. TypeError: 'module' nesnesi python nesnesi için callable değil
- 19. Bir middleware'de tüm uygulamamda erişilebilen bir değişken nasıl ayarlanır?
- 20. Özniteliklerin dinamik olarak tanımlandığı Python sınıfı oluşturun
- 21. ES6 Köşeli parantezler
- 22. Köşeli parantezler Java'daki köşeli ayraç
- 23. Statik özelliklere "->" erişilemeyen, ancak "::" tarafından erişilebilen neden?
- 24. python boto kullanarak bir AWS ec2 keypair oluşturun ve indirin
- 25. Sınıf üyesi adıyla aynı ada sahip bir python özelliği oluşturun
- 26. Python, bir soket oluşturun ve otomatik olarak yeniden bağlayın
- 27. Bir stimestamp hh biçiminde oluşturun: mm: ss: mss with python
- 28. AfterScenario kancasından erişilebilen Specflow test sonuçları?
- 29. python - işlev nesnesi bekleniyor argümanı iletme
Mükemmel yanıt: on-point, bir doc link ve basit bir çalışma örneği içerir. –
Teşekkürler! Bu işleve ulaşmak için tanımlamam gereken bazı yöntemlerin olduğunu biliyordum, bu yöntemin adının ne olduğundan emin değildim. – Ord
Ummmm ... "basit bir çalışma örneği" içermemeli, "some_expression" ifadesini döndürün? –