Python süper
__main__ Python module |
ast Python module |
code Python module |
COM PHP module |
dis Python module |
Ev PHP module |
iat |
io Python module |
JavaScript |
os Python module |
PS PHP module |
Python functions |
re Python module |
resource Python module |
SPL PHP module |
StackOverflow |
struct Python module |
sys Python module |
time Python module |
types Python module |
UI PHP module
Michael Zippo
18.11.2021
Python super() yöntemi, bir alt sınıftan bir ust sınıftan yöntemlere erişmenizi sağlar. Bu, kodunuzdaki tekrarı azaltmaya yardımcı olur. super() herhangi bir arguman kabul etmez.
Python gibi nesne y√∂nelimli programlama dillerinin temel √∂zelliklerinden biri kalƒ±tƒ±mdƒ±r. Kalƒ±tƒ±m, yeni bir sƒ±nƒ±fƒ±n yeni sƒ±nƒ±fƒ± olu≈üturmak için ba≈üka bir sƒ±nƒ±ftan kod kullanmasƒ±dƒ±r.
Sınıfları devralırken, bir ust sınıftan yöntemlere erişim elde etmek isteyebilirsiniz. İşte burada super() işlevi devreye girer.
Bu eƒüitimde Python’da kalƒ±tƒ±mƒ±n temelleri √∂rneklerle tartƒ±≈üƒ±lacaktƒ±r. Ardƒ±ndan, deƒüerleri ve y√∂ntemleri bir ust sƒ±nƒ±ftan devralmak için super() i≈ülevinin nasƒ±l kullanƒ±lacaƒüƒ± hakkƒ±nda konu≈üacaƒüƒ±z.
Python Super nedir?
Python super() y√∂ntemi, bir ust sƒ±nƒ±ftaki y√∂ntemlere eri≈ümenizi saƒülar. super()’i, ba≈üka bir sƒ±nƒ±fƒ±n miras alƒ±ndƒ±ƒüƒ± sƒ±nƒ±ftaki y√∂ntemleri g√∂runtulemenin bir yolu olarak du≈üunebilirsiniz.
super() yönteminin sözdizimi:
super() y√∂ntemi herhangi bir arguman kabul etmez. super() y√∂nteminden sonra devralmak istediƒüiniz y√∂ntemi belirtirsiniz. Yukarƒ±daki Cheese Python sƒ±nƒ±fƒ±, Food class __init__() y√∂nteminden deƒüerleri devralƒ±r. Food sƒ±nƒ±fƒ±ndan deƒüerleri devralmak için super() sƒ±nƒ±f y√∂ntemini çaƒüƒ±rƒ±rƒ±z.
Python mirasƒ±, yeni bir sƒ±nƒ±fƒ±n kullandƒ±ƒüƒ± bir sureci ifade eder. yeni sƒ±nƒ±fƒ±n yapƒ±sƒ±nƒ± tanƒ±mlamak için mevcut bir sƒ±nƒ±ftan kod.
Katƒ±lƒ±mcƒ±larƒ±n %81’i, bir eƒüitim kampƒ±na katƒ±ldƒ±ktan sonra teknik i≈ü olanaklarƒ± konusunda daha emin hissettiklerini belirtti. Bugun bir eƒüitim kampƒ±na katƒ±lƒ±n.
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ƒ±.
Miras hakkƒ±nda du≈üunmenin bir yolu çocuklarƒ±n √∂zellikleri ebeveynlerinden nasƒ±l miras aldƒ±klarƒ±nƒ± du≈üunmektir. Bir çocuk ebeveynleri ile aynƒ± saç rengine sahip olabilir ve soyadƒ±nƒ± ebeveynlerinden alabilir.
Python’da iki tur sƒ±nƒ±f vardƒ±r:
- √áocuk sƒ±nƒ±flarƒ± (veya "alt sƒ±nƒ±flar‚") y√∂ntemleri ve deƒüi≈ükenleri devralƒ±r. Alt sƒ±nƒ±flara bazen karde≈ü sƒ±nƒ±flar denir.
- √úst sƒ±nƒ±flar (veya "temel sƒ±nƒ±flar‚"), deƒüerleri devralƒ±nabilen sƒ±nƒ±flardƒ±r.
super() Python: __init__()’den devralƒ±n
Bir bankada hesabƒ± olan ki≈üilerin kimlik bilgilerini izleyen bir banka hesabƒ± sistemi olu≈üturduƒüumuzu varsayalƒ±m. , kontrol hesaplarƒ± için veri depolayan bir sƒ±nƒ±f olu≈üturmak istiyoruz. Bunu ≈üu kodu kullanarak yapabiliriz:
Bu kod, bir çek hesabƒ±nƒ±n taslaƒüƒ±nƒ± olu≈üturur.
≈ûimdi, alt banka hesaplarƒ±nƒ±n planƒ±nƒ± saklayan ve ChildAccount olarak adlandƒ±racaƒüƒ±mƒ±z bir sƒ±nƒ±f olu≈üturmak istediƒüimizi varsayalƒ±m. class daha √∂nce tanƒ±mladƒ±ƒüƒ±mƒ±z CheckingAccount sƒ±nƒ±fƒ±na dayalƒ± olmalƒ±dƒ±r.Bunu yapmak için super() fonksiyonunu kullanabiliriz.
super(), bir alt sƒ±nƒ±f içindeki bir ust sƒ±nƒ±fƒ±n y√∂ntemlerine eri≈ümenizi saƒülar.
√ñrneƒüimizde, ust sƒ±nƒ±fƒ±mƒ±zƒ±n adƒ± CheckingAccount ve alt sƒ±nƒ±fƒ±mƒ±zƒ±n adƒ± ChildAccount. CheckingAccount, bir banka hesabƒ±nƒ±n planƒ±nƒ± olu≈üturur ve ChildAccount, kendi sƒ±nƒ±fƒ±nƒ± olu≈üturmak için CheckingAccount’tan deƒüerleri devralƒ±r.
≈ûimdi , ChildAccount sƒ±nƒ±fƒ±nƒ±n CheckingAccount içinde depolanan deƒüerleri devralmasƒ±nƒ± istediƒüimizi varsayalƒ±m. Ancak bu hesabƒ±n, varsayƒ±lan olarak True deƒüerine e≈üit olmasƒ± gereken is_child adƒ±nda yeni bir deƒüer depolamasƒ±nƒ± da istiyoruz.
Yeni ChildAccount bu kodu kullanan sınıf:
Bu kod, yeni ChildAccount sƒ±nƒ±fƒ±mƒ±z için bir plan olu≈üturur. CheckingAccount sƒ±nƒ±fƒ±ndan ad ve bakiye deƒüerlerini devralmak için super() y√∂ntemini kullanƒ±rƒ±z. Sƒ±nƒ±fƒ±mƒ±zƒ±n ilk satƒ±rƒ±nda parantez içinde ana sƒ±nƒ±f olarak CheckingAccount’u belirtiyoruz.
Bu, super() √∂ƒüesinin tum √∂ƒüeleri devralmanƒ±za izin verdiƒüini g√∂sterir. ba≈üka bir sƒ±nƒ±ftan deƒüerler. Ancak kodumuzda, is_child adƒ±nda yeni bir deƒüer de bildirdik. Bu deƒüere yalnƒ±zca herhangi bir ChildAccount tarafƒ±ndan eri≈üilebilir, çunku onu ChildAccount sƒ±nƒ±fƒ±nda ilan ettik.
Bir alt hesap sahibi için sƒ±nƒ±fƒ±mƒ±zƒ±n bir √∂rneƒüini olu≈üturmak için ≈üu kodu kullanabiliriz:
"Python.Engineering hayatƒ±ma en çok ihtiyacƒ±m olduƒüu anda girdi ve hƒ±zlƒ± bir ≈üekilde bir bootcamp ile e≈üle≈ümeme yardƒ±mcƒ± oldu. Mezun olduktan iki ay sonra hayalimi buldum. hayattaki deƒüerlerim ve hedeflerim ile uyumlu bir i≈ü!"
Bu sƒ±nƒ±fta, sƒ±nƒ±fƒ±n saklamasƒ± gereken deƒüerler için planƒ± tanƒ±mladƒ±k &mdash ; ad ve denge. Kullanƒ±cƒ±nƒ±n bakiyesini kontrol etmesine izin veren checkBalance() adƒ±nda bir y√∂ntem tanƒ±mladƒ±k.