√ñzellikler, bir nesne, veri turu veya sƒ±nƒ±fla ili≈ükili deƒüerler veya i≈ülevlerdir. Veri turu veya sƒ±nƒ±fƒ± bu √∂zelliƒüi desteklemeyen bir deƒüerde bir √∂zniteliƒüi çaƒüƒ±rƒ±rsanƒ±z, bir AttributeError ile kar≈üƒ±la≈üƒ±rsƒ±nƒ±z.
Bu kƒ±lavuzda AttributeError’ƒ±n ne olduƒüu ve ne anlama geldiƒüi anlatƒ±lmaktadƒ±r. Kodunuzda bir hatayƒ± nasƒ±l duzelteceƒüinizi √∂ƒürenebilmeniz için bir AttributeError √∂rneƒüini inceleyeceƒüiz.
Python AttributeError nedir?
Denediƒüinizde bir Python AttributeError ortaya 烱kƒ±yor turu bu y√∂ntemi desteklemeyen bir nesnenin √∂zniteliƒüini çaƒüƒ±rmak için. √ñrneƒüin, bir dizede Python append() y√∂ntemini kullanmaya çalƒ±≈ümak, dizeler desteklemediƒüinden bir AttributeError d√∂ndurur. append().
Bir Python sƒ±nƒ±fƒ±nda, tarafƒ±ndan payla≈üƒ±lan y√∂ntemleri ve deƒüerleri tanƒ±mlayabilirsiniz. o sƒ±nƒ±fƒ±n nesneleri. Bu nedenle bazƒ± insanlar sƒ±nƒ±flarƒ± nesneler için planlar olarak du≈üunurler.
Bir y√∂ntemi veya sƒ±nƒ±fƒ± çaƒüƒ±rmak, o sƒ±nƒ±fƒ±n bir √∂zelliƒüine atƒ±fta bulunduƒüunuzu s√∂ylemenin ba≈üka bir yoludur. Bir nitelik hakkƒ±nda du≈üunmenin bir yolu, bir ki≈üinin fiziksel bir niteliƒüi gibidir. Bazƒ± insanlar mavi g√∂zludur. Bazƒ± insanlarƒ±n pembe boyalƒ± saçlarƒ± vardƒ±r. Bunlarƒ±n hepsi niteliklerdir.
Bir Python sƒ±nƒ±fƒ±nda, bir nitelik "eye_color‚" olabilir. Bu nitelik, bir ki≈üinin g√∂zlerinin rengini tanƒ±mlayabilir. Bir √∂znitelik, bir i≈ülev de olabilir. changeEyeColor() adlƒ± bir i≈ülev, "eye_color‚"un deƒüerini deƒüi≈ütirebilir.
Veri turlerinin nitelikleri vardƒ±r. √ñrneƒüin, bir dizeyi listeye d√∂nu≈üturmek için Python join() y√∂ntemini kullanabilirsiniz. Dize nesneleri join() y√∂ntemini destekler.
Bir sƒ±nƒ±f nesnesi veya veri turuyle ili≈ükili olmayan bir i≈üleve veya deƒüere ba≈üvurmaya çalƒ±≈üƒ±rsanƒ±z, bir AttributeError ile kar≈üƒ±la≈üƒ±rsƒ±nƒ±z. .
Katƒ±lƒ±mcƒ±larƒ±n %81’i, bir eƒüitim kampƒ±na katƒ±ldƒ±ktan sonra teknik i≈ü beklentileri konusunda daha emin hissettiklerini belirtti. Bugun 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ƒ±.
Bir program yazalƒ±m. bu iki ayakkabƒ± listesini birle≈ütiriyor. ƒ∞ki ayakkabƒ± maƒüazasƒ± bir birle≈üme surecinden geçiyor ve sattƒ±klarƒ± tum benzersiz ayakkabƒ±larƒ±n bir listesini yapmak istiyor.
Ba≈ülamak için, tanƒ±mlayalƒ±m. birinci maƒüazadaki ayakkabƒ±larƒ± içeren bir Python seti, Harrisons Shoes:
Setimizi tanƒ±mlamak için kume parantezleri kullanƒ±yoruz. Daha sonra Harrisons ile birle≈üen maƒüazanƒ±n sunduƒüu ayakkabƒ±larƒ±n isimleriyle bir set tanƒ±mlayalƒ±m. Bu ayakkabƒ± maƒüazasƒ±nƒ±n adƒ± Ayakkabƒ± Maƒüazasƒ±:
Bu iki koleksiyon set olduğundan, yalnızca benzersiz değerleri depolayabilirler. Bu, onları bir araya getirdiğimizde, yinelenen değerleri olmayan bir kume elde edeceğimiz anlamına gelir.
Kumelerimizi bir araya eklemek için, extension() adlƒ± yerle≈üik i≈ülevi kullanacaƒüƒ±z:
p>extend() y√∂ntemi, "shoe_emporium‚" "harrisons_shoes‚" Ayarlamak. Bir Python print() ifadesi kullanƒ±yoruz. Bu sayede yeni takƒ±mƒ±mƒ±zdaki tum ayakkabƒ±larƒ± g√∂rebiliriz. Kodumuzu çalƒ±≈ütƒ±ralƒ±m ve ne olduƒüunu g√∂relim:
Kodumuz bir AttributeError dönduruyor.
Hata mesajımız kullanamayacağımızı söyluyor veri turu bir kume olan bir nesnede extend() yöntemi. Bunun nedeni, extend() öğesinin bir liste yöntemi olmasıdır. Kumeler tarafından desteklenmez.
İki kumemizi birleştirmek istiyorsak bir ekleme işareti kullanmalıyız:
Bu, "shoe_emporium‚" "harrisons_shoes‚" Ayarlamak. Ardƒ±ndan "harrisons_shoes‚" içindeki tum deƒüerleri yazdƒ±rƒ±rƒ±z. konsola ayarlayƒ±n. Yeni programƒ±mƒ±zƒ± çalƒ±≈ütƒ±ralƒ±m:
Programƒ±mƒ±z, iki orijinal takƒ±mƒ±mƒ±zdaki tum ayakkabƒ±larƒ± içeren bir takƒ±m d√∂ndurur. Orijinal iki setimizde altƒ± deƒüer varken, ≈üimdi sadece be≈ü var. Bunun nedeni, ayakkabƒ±lardan ikisinin aynƒ± olmasƒ± ve setlerin yalnƒ±zca benzersiz deƒüerleri depolayabilmesidir.