Python süper

| | | |

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:

Bizim kod döndurur:

Bir √∂rnek ilan ettik Python deƒüi≈ükenine lynn atanan ChildAccount sƒ±nƒ±fƒ±nƒ±n. lynn bir sƒ±nƒ±f nesnesi çunku bir nesne kullanarak lynn’in deƒüerini bildirdik.

Lynn’s hesabında 200$ var ve is_child değeri True Ardından, Lynn’s acc ile ilişkili name, balance, is_child değerlerini yazdırdık. oun. Bu değerleri Python print() yöntemini kullanarak konsola yazdırıyoruz.

√áunku miras aldƒ±k name ve balance, CheckingAccount sƒ±nƒ±fƒ±ndan, bunlarƒ± kodumuzda kullanabildik. Ancak Lynn‚Äôs hesabƒ±nda ayrƒ±ca is_child için ayarlanmƒ±≈ü bir deƒüer vardƒ±r ve bu deƒüer, ChildAccount’un tum √∂rnekleri için varsayƒ±lan olarak True olarak ayarlanƒ±r.

super () Python: Yöntemleri Devralma

super(), sƒ±nƒ±flarƒ± tek duzeyli devralma kullanarak‚Äîbir ust sƒ±nƒ±ftan bir sƒ±nƒ±f devralarak devralmanƒ±za olanak tanƒ±r. Ya da çok duzeyli kalƒ±tƒ±mla super() kullanabilirsiniz. Bu √∂rnekte, super() ile tek seviyeli kalƒ±tƒ±m uzerine odaklanacaƒüƒ±z.

√ñnceki √∂rneƒüimizde, super() için kullandƒ±k. CheckingAccount sƒ±nƒ±fƒ±nda depolanan deƒüerleri devralƒ±r ve bunlarƒ± ChildAccount sƒ±nƒ±fƒ±nda eri≈üilebilir kƒ±lar. Ama ya bir y√∂ntemi devralmak ve yanƒ±tƒ±nƒ± deƒüi≈ütirmek istiyorsak?

"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≈ü!"

Venus, Rockbot’ta Yazƒ±lƒ±m Muhendisi

Hadi bizim konumuza geri dönelim Daha önceki CheckingAccount sınıfı:

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.

≈ûimdi, checkBalance()’i ChildAccount için eri≈üilebilir kƒ±lmak istediƒüimizi varsayalƒ±m. "Bir alt hesap sahibisiniz!‚" Bu, kullanƒ±cƒ±nƒ±n bakiyesi konsola yazdƒ±rƒ±lmadan √∂nce g√∂runmelidir.

Devralınan yöntemlerimize şu şekilde erişebiliriz:< /p>

ChildAccount sƒ±nƒ±fƒ±nda checkBalance() y√∂nteminin yeni bir surumunu ilan etti. Bu surum ilk olarak "Bir alt hesap sahibisiniz!‚" konsola. sƒ±nƒ±ftan checkBalance() y√∂ntemini yurutmek için super() kodunu kullanƒ±r‚Äô ebeveyn.

Bu durumda, super().checkBalance() çalƒ±≈ütƒ±ƒüƒ±nda, CheckingAccountcheckBalance() i≈ülevi em> sƒ±nƒ±fƒ± yurutulur. Bu, kullanƒ±cƒ±nƒ±n bakiyesini konsola yazdƒ±rƒ±r.

≈ûimdi, Lynn’in hesabƒ± için checkBalance() y√∂ntemimize eri≈ümeye çalƒ±≈üalƒ±m:

Bizim kod iadeleri:

lynn.checkBalance() y√∂ntemini çaƒüƒ±rdƒ±ƒüƒ±mƒ±zda, ChildAccount.checkBalance() y√∂ntemimizdeki kod ≈üudur: çalƒ±≈ütƒ±rƒ±n ve ardƒ±ndan super nesne, CheckingAccount.checkBalance() y√∂ntemindeki kodu yurutur.

super() işlevi, parent öğesini kullanmamıza izin verir. yöntemleri, yine de alt sınıflarımızda bu yöntemlerin uzerine yazabiliyorken.

Sonuç

Python super() i≈ülevi, y√∂ntemleri bir ust √∂ƒüeden devralmanƒ±za olanak tanƒ±r. sƒ±nƒ±f. super() i≈ülevi, mevcut i≈ülevlerden kodu yeniden kullanabileceƒüiniz için daha okunabilir kod yazmanƒ±za yardƒ±mcƒ± olur.

Bu eƒüitici, √∂rneklerle birlikte, super() i≈ülevinin nasƒ±l kullanƒ±lacaƒüƒ±nƒ± tartƒ±≈üƒ±r. bir ust sƒ±nƒ±ftan deƒüerleri ve y√∂ntemleri devralƒ±r. Artƒ±k bir Python uzmanƒ± gibi super() i≈ülevini kullanmaya ba≈ülamak için ihtiyacƒ±nƒ±z olan bilgilerle donatƒ±ldƒ±nƒ±z!

Python programlama hakkƒ±nda daha fazla kaynak için Python Nasƒ±l √ñƒürenilir kƒ±lavuzu.

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method