Sie sind hier: Python
Zurück zu: Sprachen
Allgemein: Vorlesungen Labore Sinnvolle Programme Lineare Regression GUI-Entwurfsarbeit Single-Format Design Pattern-Termine Observer1 Bsp2 Json-Array Json-Dialogelemente Webtechnologien

Suchen nach:

Klassen / Classes

Klassen


Änderungen gegenüber Java / C#


Beispiel für Klassen

# coding=utf8

import math

class Punkt:

  def __init__(self, x, y):
    # Klassen-Attribute definieren
    self._x=x
    self._y=y

  def getX(self):
    return self._x

  def getY(self):
    return self._y

  def setX(self,x):
    self._x=x

  def setY(self,y):
    self._y=y

  def __str__(self):	# toString
    return str(self.x)+", "+str(self.y)


class Linie:

  def __init__(self, x1, y1, x2, y2):
    # Klassen-Attribute definieren
    self.p1=Punkt(x1,y1)
    self.p2=Punkt(x2,y2)

  def getLaenge(self):
    dx = self.p2.getX()-self.p1.getX()
    dy = self.p2.getY()-self.p1.getY()
    return math.sqrt(dx*dx+dy*dy)

  def __str__(self):	# toString
    return str(self.x1)+"/"+str(self.y1)+" , "+str(self.x2)+", "+str(self.y2)


# main
p1 = Punkt(12,13)
p1.setX(42)
p1.setY(24)
print(p1.getX())
print(p1.getY())
print(p1)  # toString

l1 = Linie(1,2,3,4)
print(l1.getLaenge())


Klassen


Beispiel für Klassen

# coding=utf8
class A:
   def __init__(self):
     self._x = 1337
     print("Konstruktor von A")

   def m(self):
     print("Methode m von A. Es ist self._x =", self._x)

  def getX(self):
    return self._x


  def setX(self,x):
    self._x=x


class B(A):
   def __init__(self):
     A.__init__(self)	# nun hat B auch das Attribut X!
     self._y = 10000
     print("Konstruktor von B")

   def n(self):
     print("Methode n von B. Es ist self.Y =", self._y)

  def getY(self):
    return self._y

  def setY(self,y):
    self._y=y


b = B()
b.n()
b.m()

Klassen


Interface

#! /usr/bin/env python3
# coding=utf8

# mit interface

class IDrucken(object):
  def __init__(self):
   pass

  def drucken(self):
    raise Exception("NotImplemented")


class Flugzeug(IDrucken):
  def __init__(self, name, laenge):
    self.name = name
    self.laenge = laenge
    print("Konstruktor von Flugzeug")



  def drucken(self):
    print("Flugzeug ",self.name,"Länge: ", self.laenge)


class Frachtflugzeug(Flugzeug):
  def __init__(self, name, laenge, fracht):
    Flugzeug.__init__(self,name, laenge)
    self.fracht = fracht
    print("Konstruktor von Frachtflugzeug")

  def drucken(self):
    print("Frachtflugzeug",self.name,"Länge: ", self.laenge,"Fracht: ",self.fracht)





class Vogel(IDrucken):
  def __init__(self, name, gewicht):
    self.name = name
    self.gewicht= gewicht
    print("Konstruktor von Vogel")

  def drucken(self):
    print("Vogel",self.name,"Gewicht: ", self.gewicht)


class Singvogel(Vogel):
  def __init__(self, name, gewicht, melodie):
    Vogel.__init__(self, name, gewicht)
    self.melodie = melodie
    print("Konstruktor von Singvogel")

  def drucken(self):
    print("Singvogel",self.name,"Gewicht: ", self.gewicht,"Melodie:",self.melodie)



f1 = Flugzeug('Airbus 300 M',100.2)
f2 = Frachtflugzeug('Airbus 300 X',100.2,34505)

v1 = Vogel('Eule',134)
v2 = Singvogel('Drossel',89, 'gut')

liste = []
liste.append(f1)
liste.append(f2)
liste.append(v1)
liste.append(v2)
for item in liste:
  item.drucken()

Gehe zu: Python Functions tkinter