Klasser och metoden __init__
Definiera klasser, skapa objekt och initiera attribut.
Klasser och metoden __init__ är en gratis lektion i Python Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Python Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Python Academy innehåller totalt 4 lektioner.
Definiera en klass
Använd nyckelordet class för att definiera en klass. Enligt konvention skrivs klassnamn med CapWords.
class Dog:
pass
fido = Dog()
print(type(fido)) # <class '__main__.Dog'>Metoden __init__
__init__ anropas automatiskt när ett objekt skapas. Använd den för att konfigurera instansattribut.
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breed
fido = Dog("Fido", "Labrador")
print(fido.name) # Fidoself förklarat
self refererar till den aktuella instansen. Det måste vara den första parametern i varje instansmetod. Python skickar automatiskt med det.
class Counter:
def __init__(self):
self.count = 0
def increment(self):
self.count += 1
c = Counter()
c.increment()
print(c.count) # 1Flera instanser
Varje instans har en egen kopia av de instansattribut som definieras i __init__.
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 5Standardvärden för parametrar i __init__
Ge parametrarna i __init__ standardvärden för att göra vissa argument valfria.
class Circle:
def __init__(self, radius=1.0):
self.radius = radius
c1 = Circle()
c2 = Circle(5)
print(c1.radius, c2.radius) # 1.0 5Instansmetoder
Metoder som definieras inuti en klass arbetar med instansen via self.
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()) # 20Lägga till attribut efter skapandet
Ni kan lägga till attribut i en instans efter att den har skapats, men det är tydligare att deklarera alla attribut i __init__.
class Person:
def __init__(self, name):
self.name = name
p = Person("Alice")
p.age = 30 # added after creation
print(p.name, p.age)Returvärdet från __init__
__init__ måste returnera None. Om något annat returneras uppstår ett TypeError.
class Broken:
def __init__(self):
return 42 # TypeError!
# Correct
class OK:
def __init__(self):
self.value = 42
# implicit return NoneKontrollera instanstyp
Använd isinstance() för att kontrollera om ett objekt är en instans av en klass.
class Animal:
pass
class Dog(Animal):
pass
d = Dog()
print(isinstance(d, Dog)) # True
print(isinstance(d, Animal)) # TrueAttributet __dict__
Varje instans lagrar sina attribut i en __dict__-ordbok.
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}Ta bort attribut
Använd del för att ta bort ett attribut från en instans under körning.
class Config:
def __init__(self):
self.debug = True
self.version = "1.0"
cfg = Config()
del cfg.debug
print(hasattr(cfg, "debug")) # FalseSnabbkontroll
Vad är syftet med self i Pythons klassmetoder?
Sammanfattning
Klasser är mallar för objekt. __init__ initierar instansattribut, self refererar till det aktuella objektet och varje instans har sin egen attributordbok.
Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 76
- Lektioner
- 320
Vanliga frågor
Är lektionen ”Klasser och metoden __init__” gratis?
Ja – hela texten till ”Klasser och metoden __init__” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Python Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Python Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Klasser och metoden __init__”?
Definiera klasser, skapa objekt och initiera attribut. Ni övar på Python Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Python Academy?
Du behöver inga förkunskaper. Utbildningen i Python Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Klasser och metoden __init__”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Python Academy-lektionen?
Ja. Varje Python Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Klasser och metoden __init__
- Instansattribut kontra klassattribut
- Instansmetoder och self
- Magiska metoder: __str__ och __repr__