Seite 1 von 1
print gibt zusätzlich "None" zurück
Verfasst: Freitag 11. Mai 2007, 20:15
von Twilo
Hallo,
kann mir einer erklären, warum print zusätzlich ein "None" zurückgibt?
Code: Alles auswählen
class test(object):
def _test1(self):
print 1
test1 = test()
print test1._test1()
Code: Alles auswählen
C:\Documents and Settings\xxx\My Documents\python>python test.py
1
None
C:\Documents and Settings\xxx\My Documents\python>
mfg
Twilo
Re: print gibt zusätzlich "None" zurück
Verfasst: Freitag 11. Mai 2007, 20:20
von EyDu
Weil Funktionen die nicht explizit einen Wert zurückgeben, immer None liefern.
Und zusätzlich ist da auch nichts, mit "print" gibst du lediglich etwas aus.
Verfasst: Freitag 11. Mai 2007, 20:21
von mitsuhiko
Nicht print gibt None zurück, deine Funktion tut das.
Verfasst: Freitag 11. Mai 2007, 20:22
von Twilo
Hallo,
ok, da hätte ich auch selber drauf kommen können
mfg
Twilo
Verfasst: Samstag 12. Mai 2007, 17:19
von Sr4l
lass die funktion was returnen.
z.B
dann wird "Test ausgegeben.
Verfasst: Donnerstag 5. Juli 2007, 21:53
von stasikz
Hallo, eine frage zum gleichen "Problem":
Code: Alles auswählen
class bruch:
def __init__(self, z=1, n=1):
self.zaehler = z
self.nenner = n
def zeigen(self):
print '%d/%d' % (self.zaehler,self.nenner)
b1 = bruch(2,4)
print "b1 = ", b1.zeigen()
rufe ich dieses Proramm auf, bekomme ich folgendes als Ausgabe:
Mir ist schon klar, dass eine Funktion die keinen Rückgabewert besitzt, bei der print Anweisung None zurückgibt, lasse ich meine "zeigen"-methode dann irgendwas returnen, z.b return 1, dann kommt das als ergebnis:
ich würde es aber gerne nur so ausgeben lassen:
Kann mir vielleicht einer ein Tipp geben, wie ich das am elegantesten lösen kann
Verfasst: Donnerstag 5. Juli 2007, 22:03
von lunar
print ist ein Statement, keine Funktion. Print gibt nichts zurück. Versuch doch mal ein:
Dein "Problem" kannst du am elegantesten lösen, indem du in zeigen print durch return ersetzt. Das wirkt Wunder...