Gå til innhold

Problem med funksjon inni klasse, feil ant. argument.


Anbefalte innlegg

Hei!

Her er koden min:

class calculator:
def plus(x, y):
	return x + y
def minus(x, y):
	return x - y
def dele(x, y):
	return x / y
def gange(x, y):
	return x * y

kalkulator = calculator()
print "5 ganger 6 er " + kalkulator.gange(5, 6) + " ."
print "5 delt paa 6 er " + kalkulator.dele(5, 6) + " ."
print "5 pluss 6 er " + kalkulator.plus(5, 6) + " ."
print "5 minus 6 er " + kalkulator.minus(5, 6) + " ."

 

Feilmelding:

Traceback (most recent call last):
 File "printparams.py", line 12, in <module>
print "5 ganger 6 er " + kalkulator.gange(5, 6) + " ."
TypeError: gange() takes exactly 2 arguments (3 given)

 

Kva er det eg har gjort gale? Det står at eg har gitt tre argument, men eg har jo berre gitt to!

 

Forresten, kjemegod bok, denne Beginning Python, anbefalt til alle som vil lære seg litt om python. LItt treig i starten kanskje, men det kjem seg veldig utover når du lærer om OOP. :D

Lenke til kommentar
Videoannonse
Annonse

Prøv denne:

 

class calculator:
def plus(self, x, y):
	return x + y
def minus(self, x, y):
	return x - y
def dele(self, x, y):
	return x / y
def gange(self, x, y):
	return x * y

kalkulator = calculator()
print "5 ganger 6 er " + str(kalkulator.gange(5, 6)) + " ."
print "5 delt paa 6 er " + str(kalkulator.dele(5, 6)) + " ."
print "5 pluss 6 er " + str(kalkulator.plus(5, 6)) + " ."
print "5 minus 6 er " + str(kalkulator.minus(5, 6)) + " ."

Lenke til kommentar

Takk skal du ha, B===D, eg gjorde det på denne måten:

class calculator:
def plus(self, x, y):
	return x + y
def minus(self, x, y):
	return x - y
def dele(self, x, y):
	return x / y
def gange(self, x, y):
	return x  * y

kalkulator = calculator()
print "5 ganger 6 er", kalkulator.gange(5, 6)
print "5 ganger 6 er", kalkulator.gange(5, 6), "."
print "5 delt paa 6 er", kalkulator.dele(5.0, 6.0) ,"."
print "5 pluss 6 er", kalkulator.plus(5, 6) , "."
print "5 minus 6 er" ,kalkulator.minus(5, 6) ,"."

Det eg forandra var "self" i metode-argumenta og så brukte eg komma i staden for pluss, for då trur ikjke programmet at eg skal slå saman to strenger, men at eg printar ut to element. :)

 

Kva er self?

Lenke til kommentar
Btw, divisjon er litt rart i python. Deler du et heltall på at annet vil resultatet bli et heltall. 6/4 vil bli 1. Er et eller begge av dem derimot desimaltall vil du få rett svar. 6./4. = 1.5.

Er vel ikkje rart? Er jo slik vi vil ha det!

int/int = int

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...