gerektirir Bir önceki durumda olduğu gibi self.ff[0] == self.f
değil self.ff == self.f
?Yöntem Bu kod çalışır anlamak isteyen açık `self` argüman
7
A
cevap
3
Sınıfınızın üyesini yazdırırken farkı görebilirsiniz. İlk Örneğin
Eğer fonksiyon (me) bağlı yönteme sarılır olduğunu göreceksiniz ki sizin için self
parametreyi işler:
>>> MyClass.ff
<unbound method MyClass.f>
>>> MyClass().ff
<bound method MyClass.f of <__main__.MyClass object at 0x7f53>>
ikinci örnekteki işlevi olarak kullanılır iken normal işlevi:
>>> MyClass.ff[0]
<function f at 0x7f54>
>>> MyClass().ff[0]
<function f at 0x7f54>
+0
soruyu değiştirelim: neden ikinci durumda 'MyClass.ff [0]! = MyClass.f' –
+0
@RuggeroTurra aynı nedenden dolayı. 'MyClass.ff [0]' 'MyClass.f' işlevi bu işlevi sarmayan bir ilişkisiz yöntemdir. – tynn
İlgili konular
- 1. TypeError: Gerekli 1 konumsal argüman eksik: 'self'
- 2. Bu kod sorunsuz çalışır mı?
- 3. nasıl bu pKataLengkap.replaceAll gibi kod anlamak ("(.) \\ 1+", "$ 1")
- 4. CFPropertyListCreateDeepCopy Bu örnek kod çalışır Nedense NSNull
- 5. Bu kod jQuery olmadan nasıl çalışır?
- 6. alt sınıfları, diğer nesnenin alt sınıfından farklı mı çalışır? Bu örnek kod neden çalışmıyor
- 7. Diziler Bu kavramı anlamak için mücadele
- 8. Matlab Sınıfı Yöntem: Çok fazla argüman var
- 9. Swift - I geçti aşağıdaki yöntem imzası anlamak için kuramıyorum Garip yöntem imza sözdizimi
- 10. NSBezierPath eğrisini anlamak için zor bir zaman geçirmeToPoint: yöntem
- 11. Açık tür argüman neden elmas ile değiştirilmelidir?
- 12. Bu kod niçin optomizasyonlarla açık veya kapalı olarak farklı davranıyor?
- 13. bu yayının başlığında argüman için
- 14. SpriteKit'i Anlamak: Sprite'ları Taşıma
- 15. jQuery AJAX, IE8'de "Hata: Bu yöntem, açık yöntem çağrılana kadar çağrılmaz."
- 16. Bu kod
- 17. [self release], [self dealloc] veya [super dealloc]?
- 18. "self" anlamı için arama içinde
- 19. nasıl yöntemin argüman spesifik özellik
- 20. Açık kod yazılımını 'kod' sağladığınız sürece satabilirsiniz. Bu proje dosyaları ve diğer meta verileri içerir mi?
- 21. Bu "verim" ile nasıl çalışır?
- 22. Kod çalışır, ancak her şey düzgün değil
- 23. Yöntem argüman sınıfı aşağıdaki Class ve Arayüz sahip arayüz
- 24. Beslenecek argüman dizisini döndürür.format()
- 25. Çalışan Nesneyi Anlamak Tablo
- 26. Bu kod aslında ne yapıyor
- 27. Bu iki argüman neden aynı değeri getirir?
- 28. Anlamak .then() ES6
- 29. Kod hata ayıklama yaparken çalışır, ancak kod çalıştırıldığında kilitlendi
- 30. Bu nasıl çalışır? Express kullanılan Opsiyonel ilk argüman (err, req, önümüzdeki res) Ekspres/Connect ile
Emin değilim, ancak yöntemler sınıfın üyesi olan işlevlerdir. İkinci örneğinizde, ff bir işlevdir, bir işlev değildir ve ff [0] MyClass öğesinin bir üyesi değildir. Bu sadece bir fonksiyon. –
neden ff [0] 'sınıfının bir üyesi değil? –
Bu daha iyi bir başlık mı? Bu ilginç bir soru, bunun için teşekkürler! –