Python Academy · Lektion

Klasser och metoden __init__

Definiera klasser, skapa objekt och initiera attribut.

Lektion 1 av 413 steg

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)   # Fido

self 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)  # 1

Flera 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 5

Standardvä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 5

Instansmetoder

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())  # 20

Lä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 None

Kontrollera 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))  # True

Attributet __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"))  # False

Snabbkontroll

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.

Gratis att börja

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

  1. Klasser och metoden __init__
  2. Instansattribut kontra klassattribut
  3. Instansmetoder och self
  4. Magiska metoder: __str__ och __repr__
← Tillbaka till Python Academy