Sidebar

Am Ende der Intuition?

Letzte Aktualisierung am 29. August 2014.

Programmieren hat viel damit zu tun eine gewisse Intuition für Code zu entwickeln. Insbesondere Python ist eine Sprache, die sich meistens so verhält, wie ich es erwarten würde. Heute wurde ich allerdings beim debuggen von Pythoncode doch darauf hingewiesen, nicht zu selbstsicher zu werden:

def foo(*args, **kwargs):
  print(args, kwargs)


class Foo: 
  FOO = foo

  def __init__(self):
    self.BAR = foo

  def foo(self, *args, **kwargs): 
    self.FOO(*args, **kwargs) 

  def bar(self, *args, **kwargs): 
    self.BAR(*args, **kwargs) 

f = Foo() 
f.foo('hallo', welt='!')
f.bar('hallo', welt='!')

 Mit dem Beispiel verrate ich wahrscheinlich schon zu sehr, worauf ich hinaus will. Dennoch empfehle ich, vor dem Weiterlesen erst einmal zu überlegen, was dieser Codeschnipsel ausgibt.

Wenn man sich wieder daran erinnert, wie Klassen in Python funktionieren, ist das Ergebnis auch gar nicht mehr so abwegig und Python wird wieder intuitiv:

(<__main__.Foo object at 0x00000000023A9C88>, 'hallo') {'welt': '!'}
('hallo',) {'welt': '!'}

f.FOO ist hier eine gebundene Methode während f.BAR lediglich eine Objektvariable mit einer Funktion als Wert ist. Foo.FOO ist dagegen wieder ganz einfach foo.

Kommentare

Kommentare deaktiviert.

Pingbacks

Pingbacks sind deaktiviert.

Trackbacks

  1. djangsters - solving web projects since 2013 am 15.09.2014 16:18:58 #

    Programmieren hat viel damit zu tun eine gewisse Intuition für Code zu entwickeln. Insbesondere Python ist eine Sprache, die sich meistens so verhält, wie ich es erwarten würde. Neulich wurde ich allerdings beim debuggen von Pythoncode doch darauf hingewiesen, nicht zu selbstsicher zu werden: