Chcel by som napísať triedu Kalkulačka vrátane:
- funkcia nazvaná
add
ktorý obsahuje dva parametre obsahujúce dvojité hodnoty a vráti ich sumu - funkcia nazvaná
subtract
ktorý má dva parametre obsahujúce dvojité hodnoty a vracia ich rozdiel (odčíta druhý od prvého) - funkcia nazvaná
multiply
ktorý obsahuje dva parametre obsahujúce dvojité hodnoty a vráti ich produkt - funkcia nazvaná
divide
ktorý má dva parametre obsahujúce dvojité hodnoty a vráti hodnotu prvej delené na druhú. Ak je druhé číslo nula, nedeľte sa a nevráťte "Nemôžete rozdeliť nulou!"
Toto je môj pokus, ale zjavne to nie je správne.
class Calculator:
def add(x,y):
return x+ y
def subtract(x,y):
return x - y
def multiply(x,y):
return x * y
def divide(x,y):
if y==0:
return "You can t divide by zero!"
else:
return x/y
Z výsledkov získam neočakávaný identifikátor x a y.
odpovede:
1 pre odpoveď č. 1Metódy objektov v Pythone musia explicitne definovať parameter "to", ktorý poznáte z "C", alebo argument týkajúci sa samotného objektu. V Pythone sa zvyčajne nazýva "ja". Napríklad:
class Calc:
def add(self,x,y): return x+y
Keďže všetky vaše metódy skutočne nepotrebujú seba a kalkulačka je skôr kontajnerom metód, môžete ich definovať ako triedy metódy, takže Calc.add(3,4)
pracuje bez vytvorenia objektu:
class Calc:
@staticmethod
def add(x,y): return x+y
Ak ste na pythón nový, prosím poznamenajte, že odsadenie je tiež veľmi dôležité.