Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!

Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount

Klasser og objekter


In JavaScript kan variabler og funksjoner bli innkapslet i et objekt. Dette kan gjøres ved bruk av klasser i ny syntax (ES6), eller med konstruktørfunksjoner i eldre i JavaScript.

Et objekt får sine variabler og funksjoner fra klasser. Klasser er i bunn og grunn en mal for å lage objekter.

En veldig enkel klasse kan se slik ut:

class MyClass:
    variable = "blah"

    def function(self):
        print("Dette er en melding inni klassen.")

Vi skal forklare hvorfor du må inkludere "self" som en parameter litt senere. Først, for å tildele den ovenstående klassen (malen) til et objekt, vil du gjøre følgende:

class MyClass:
    variable = "blah"

    def function(self):
        print("Dette er en melding inni klassen.")

myobjectx = MyClass()

Nå holder variabelen "myobjectx" et objekt av klassen "MyClass" som inneholder variabelen og funksjonen definert innenfor klassen kalt "MyClass".

Tilgang til objektvariabler

For å få tilgang til variabelen inne i det nyopprettede objektet "myobjectx" vil du gjøre følgende:

class MyClass:
    variable = "blah"

    def function(self):
        print("Dette er en melding inni klassen.")

myobjectx = MyClass()

myobjectx.variable

For eksempel, vil det nedenfor skrive ut strengen "blah":

class MyClass:
    variable = "blah"

    def function(self):
        print("Dette er en melding inni klassen.")

myobjectx = MyClass()

print(myobjectx.variable)

Du kan lage flere ulike objekter av samme klasse (som har de samme variabler og funksjoner definert). Men, hvert objekt inneholder uavhengige kopier av variablene definert i klassen. For eksempel, hvis vi definerer et annet objekt med "MyClass" klassen og deretter endrer strengen i variabelen ovenfor:

class MyClass:
    variable = "blah"

    def function(self):
        print("Dette er en melding inni klassen.")

myobjectx = MyClass()
myobjecty = MyClass()

myobjecty.variable = "yackity"

# Så skriv ut begge verdiene
print(myobjectx.variable)
print(myobjecty.variable)

Tilgang til objektfunksjoner

For å få tilgang til en funksjon inni et objekt bruker du en notasjon lik den for å få tilgang til en variabel:

class MyClass:
    variable = "blah"

    def function(self):
        print("Dette er en melding inni klassen.")

myobjectx = MyClass()

myobjectx.function()

Det ovenstående vil skrive ut meldingen, "Dette er en melding inni klassen."

init()

__init__() funksjonen er en spesiell funksjon som kalles når klassen initieres. Den brukes til å gi verdier i en klasse.

class NumberHolder:

   def __init__(self, number):
       self.number = number

   def returnNumber(self):
       return self.number

var = NumberHolder(7)
print(var.returnNumber()) #Skriver ut '7'

Øvelse

Vi har en klasse definert for kjøretøy. Lag to nye kjøretøy kalt car1 og car2. Sett car1 til å være en rød kabriolet verdt $60,000.00 med navnet Fer, og car2 til å være en blå van kalt Jump som er verdt $10,000.00.

# define the Vehicle class class Vehicle: name = "" kind = "car" color = "" value = 100.00 def description(self): desc_str = "%s is a %s %s worth $%.2f." % (self.name, self.color, self.kind, self.value) return desc_str # your code goes here # test code print(car1.description()) print(car2.description()) # define the Vehicle class class Vehicle: name = "" kind = "car" color = "" value = 100.00 def description(self): desc_str = "%s is a %s %s worth $%.2f." % (self.name, self.color, self.kind, self.value) return desc_str # your code goes here car1 = Vehicle() car1.name = "Fer" car1.color = "red" car1.kind = "convertible" car1.value = 60000.00 car2 = Vehicle() car2.name = "Jump" car2.color = "blue" car2.kind = "van" car2.value = 10000.00 # test code print(car1.description()) print(car2.description()) #test_output_contains('Fer is a red convertible worth $60000.00.') #test_output_contains('Jump is a blue van worth $10000.00.') success_msg("Great job!")

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!

Previous Tutorial Next Tutorial Take the Test
Copyright © learnpython.org. Read our Terms of Use and Privacy Policy