Python - litt om klasser og objekter

Lærebok, kapittel 9:

  • Objects
  • 9.1 Using Objects
  • 9.2 String Objects
  • 9.3 File Objects (kommer seinere)

 

(- 9.3: 5 sider)

Python er et objekt-orientert språk

Alt i Python er objekter:

 


i = 22
print(type(i))


x = 12.3
print(type(x))


S = "Saturn"
print(type(S))


B = True
print(type(B))
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
​
class Rectangle:
  def __init__(self, width, height):
    self.width = width
    self.height = height

  def area(self):
    return self.width * self.height
r1 = Rectangle(12, 36)

print(r1.width)
print(r1.height)
print(r1.area())

Vi kan lage våre egne klasser for å utvide Python-språket.

Klassedefinisjon

Bruk av klasse-definisjonen:
Vi oppretter objekter (instansiering)

def area(width, height):
    return width * height
width = 12
height = 36

print(width)
print(height)
print(area(width, height))

Funksjonsdefinisjon

Bruk av funksjondefinisjon

Vi kan lage våre egne funksjoner for å utvide Python-språket.

Hvis vi bruker funksjoner må vi ha kontroll på dataene våre utenfor funksjonen.

 

Hvis vi lager klasser og deretter instansierer objekter basert på klassedefinisjonen, kan vi legge dataene våre inne i objektene.

rectangle_A_area = area(width, height) # width og height er egne variabler

rectangle_A_area = A.area()            # width og height ligger inne i A
                                       # legg merke til dot-notasjonen

Terminologi:

 

Funksjoner som er definert som en del av en klassedefinisjon kalles metoder

 

Frittstående funksjoner kalles funksjoner

Hvordan utvide Python-språket (i INGG1001):

 

- oppretting og bruk av variabler

- oppretting og bruk av funksjoner

- bruk av klasser/objekter (ikke lage egne klasser)

 

- bruke Standard Library

 

 

 


  import math

  print("sinus til en vinkel på 60 grader er " + str(math.sin(math.radians(60))))

Python-språket kan utvides ved å importere nye ord

math er en del av Python Standard Library

-se https://docs.python.org/3.7/library/math.html

str-klassen har mange innebygde metoder,

 

se dokumentasjonen her:
https://docs.python.org/3.7/library/stdtypes.html#text-sequence-type-str

og eksempler på bruk her:

https://folk.ntnu.no/sverrsti/INGG1001-H2019/String_methods.html

viktige lærebok-kapitler:

  • 2.5 Control Codes Within Strings
  • 2.7 Controlling the Print Function

INGG1001 - om objekter

By sverres

INGG1001 - om objekter

  • 428