Luokat ja __init__-metodi
Määrittäkää luokkia, luokaa olioita ja alustakaa attribuutteja.
Luokat ja __init__-metodi on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Python Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Python Academy-kurssilla on yhteensä 4 oppituntia.
Luokan määrittäminen
Käyttäkää class-avainsanaa luokan määrittämiseen. Käytännön mukaan luokkien nimet kirjoitetaan CapWords-muodossa.
class Dog:
pass
fido = Dog()
print(type(fido)) # <class '__main__.Dog'>Metodi __init__
__init__ kutsutaan automaattisesti, kun olio luodaan. Käyttäkää sitä instanssiattribuuttien alustamiseen.
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breed
fido = Dog("Fido", "Labrador")
print(fido.name) # Fidoself selitettynä
self viittaa nykyiseen instanssiin. Sen on oltava jokaisen instanssimetodin ensimmäinen parametri. Python välittää sen automaattisesti.
class Counter:
def __init__(self):
self.count = 0
def increment(self):
self.count += 1
c = Counter()
c.increment()
print(c.count) # 1Useita instansseja
Jokaisella instanssilla on oma kopionsa metodiin __init__ asetetuista instanssiattribuuteista.
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
p1 = Point(1, 2)
p2 = Point(5, 7)
print(p1.x, p2.x) # 1 5Oletusparametriarvot metodissa __init__
Antakaa metodin __init__ parametreille oletusarvot, jotta joistakin argumenteista tulee valinnaisia.
class Circle:
def __init__(self, radius=1.0):
self.radius = radius
c1 = Circle()
c2 = Circle(5)
print(c1.radius, c2.radius) # 1.0 5Instanssimetodit
Luokan sisällä määritellyt metodit käsittelevät instanssia self-parametrin kautta.
class Rectangle:
def __init__(self, w, h):
self.w = w
self.h = h
def area(self):
return self.w * self.h
r = Rectangle(4, 5)
print(r.area()) # 20Attribuuttien lisääminen luomisen jälkeen
Voitte lisätä instanssille attribuutteja luomisen jälkeen, mutta kaikkien attribuuttien ilmoittaminen metodissa __init__ on selkeämpää.
class Person:
def __init__(self, name):
self.name = name
p = Person("Alice")
p.age = 30 # added after creation
print(p.name, p.age)Metodin __init__ palautusarvo
__init__-metodin on palautettava None. Minkä tahansa muun arvon palauttaminen aiheuttaa TypeError-virheen.
class Broken:
def __init__(self):
return 42 # TypeError!
# Correct
class OK:
def __init__(self):
self.value = 42
# implicit return NoneInstanssin tyypin tarkistaminen
Käyttäkää isinstance()-funktiota tarkistamaan, onko olio jonkin luokan instanssi.
class Animal:
pass
class Dog(Animal):
pass
d = Dog()
print(isinstance(d, Dog)) # True
print(isinstance(d, Animal)) # TrueAttribuutti __dict__
Jokainen instanssi tallentaa attribuuttinsa __dict__-sanakirjaan.
class Book:
def __init__(self, title, pages):
self.title = title
self.pages = pages
b = Book("Python 101", 300)
print(b.__dict__) # {'title': 'Python 101', 'pages': 300}Attribuuttien poistaminen
Käyttäkää del-käskyä attribuutin poistamiseen instanssilta ajon aikana.
class Config:
def __init__(self):
self.debug = True
self.version = "1.0"
cfg = Config()
del cfg.debug
print(hasattr(cfg, "debug")) # FalsePikatarkistus
Mikä on self-parametrin tarkoitus Python-luokan metodeissa?
Kertaus
Luokat ovat olioiden malleja. __init__ alustaa instanssiattribuutit, self viittaa nykyiseen olioon, ja jokainen instanssi ylläpitää omaa attribuuttisanakirjaansa.
Opi Python tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 76
- Oppitunnit
- 320
Usein kysytyt kysymykset
Onko oppitunti ”Luokat ja __init__-metodi” ilmainen?
Kyllä – oppitunnin ”Luokat ja __init__-metodi” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Python Academy-kurssin, päivitä CoddyKit PROhon. Python Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Luokat ja __init__-metodi”?
Määrittäkää luokkia, luokaa olioita ja alustakaa attribuutteja. Harjoittelet Python Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Python Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Python Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Luokat ja __init__-metodi”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Python Academy-oppitunnilla?
Kyllä. Jokainen Python Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Luokat ja __init__-metodi
- Instanssiattribuutit ja luokka-attribuutit
- Instanssimetodit ja self
- Taikametodit: __str__ ja __repr__