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!