mal grundsaetzlich: python vs. php...etc

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
iujm

mal grundsaetzlich: python vs. php...etc

Beitragvon iujm » Freitag 6. Februar 2004, 10:37

ahoi und guten tag...
ich komme aus der c++/php ecke und moechte mich jetz noch
naeher mit einer weitern sprache beschaeftigen.
ruby finde ich ganz toll, aber das ist noch sowenig verbreitet auf den
servern.
wie ist es eigendlich mit python?
was sind die vorteieln gegenueber zb. php? fuer welche probleme/loesungen eignet sich python ganz besonders, fuer welche nich?
wie ist es mit sql (postrge und mysql)
kann python auch standalone?

fragen ueber fragen
zotikus
User
Beiträge: 1
Registriert: Freitag 6. Februar 2004, 10:27

hey admin:hallo! ich wollte das nicht als gast schreiben!!!

Beitragvon zotikus » Freitag 6. Februar 2004, 10:41

:oops:
erst hatte ich ein problem mit einer
invalid session, musste den beitrag nochmal schreiben,
dann sagt das forum mir: benutztername is schon weg,
muste mich neu einloggen, dann ging es..
komisch..diese bb boards sind doch sonst ziemlich fehlerfrei??
viellecht bin ich ja uach zu doff..
naegal

ahoi und guten tag...
ich komme aus der c++/php ecke und moechte mich jetz noch
naeher mit einer weitern sprache beschaeftigen.
ruby finde ich ganz toll, aber das ist noch sowenig verbreitet auf den
servern.
wie ist es eigendlich mit python?
was sind die vorteieln gegenueber zb. php? fuer welche probleme/loesungen eignet sich python ganz besonders, fuer welche nich?
wie ist es mit sql (postrge und mysql)
kann python auch standalone?

fragen ueber fragen
Benutzeravatar
Aron Squander
User
Beiträge: 21
Registriert: Donnerstag 5. Februar 2004, 16:12
Wohnort: Mainz
Kontaktdaten:

Beitragvon Aron Squander » Freitag 6. Februar 2004, 11:18

Also, für php brauchst du immer einen Server, für python nicht.
Das wichtigste an python ist aber eigentlich, das man die sprache in ihrer ganzen mächtigkeit sehr schnell verstehen kann. Das ist natürlich ideal für das, wofür python auch gedacht ist: Rapid Prototyping. Entwicklungszeit für Projekte ist einfach extrem klein...
Greetings
Aron
The best view of ones Soul you get
from a little bit over the edge
looking back
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

Beitragvon DER Olf » Freitag 6. Februar 2004, 14:57

von was sprichst du?
cgi????
sonst is python eine programmiersprache, die auf dem system läuft wie jede andere auch, nur einfach zu verstehen.:)
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Beitragvon Milan » Freitag 6. Februar 2004, 15:01

Hi. Also Python ist eine schöne einfache, aber mächtige Sprache. Da man immer mit dem guten anfängt, tu ich das auch mal:
- Python hat im Gegensatz zu PHP ein sehr einfaches Konzept für OOP
- die Sprache ist minimalistisch, also es ist so wenig wie nötig eingebaut, aber du wirst trotzdem nix missen, da es zig Module gibt.
- in geschwindigkeitskritischen Teilen kannst du auf C umsteigen, dir dort was basteln und diesen Code dann aus Python heraus importieren (mit entsprechender Geschwindigkeit)

Python ist allerdings minimalistisch (was ich gutheiße). Das heißt, es ist so wenig wie nötig integriert. Die meiste Funktionalität steckt in der OOP und in den Modulen von Python. MySQL wirst du allerdings nachrüsten müssen, es existiert ein Modul für den Zugriff (MySQLdb), was aber nicht integriert ist.

Noch mehr Informationen findest du hier, da wurde schon mal was ähnliches gefragt...

Milan
Benutzeravatar
murphy
User
Beiträge: 60
Registriert: Samstag 30. Oktober 2004, 01:34
Wohnort: Berlin
Kontaktdaten:

Beitragvon murphy » Freitag 12. November 2004, 01:01

also ich bin immer noch absoluter Ruby-fan.
Python finde ich dennoch sehr sympatisch und modern.

interessant, wenn auch etwas alt, ist folgender post:
gekürzter Link
ich las das und fand es ziemlich übertrieben pro-Ruby...und zum teil nicht korrekt.
wie auch immer, der urheber ist (war?) Python-programmierer ;) und ich bin ziemlich erstaunt.

ich kenne bisher keinen Ruby-programmierer, der Python besonders mag...dauernd wird über "die sache mit den indents" gestritten.
aber davon abgesehen: der einzige vorteil, den ich bisher (1 woche :oops:)gesehen habe: Python ist erstaunlich schnell, gerade was schleifen und strings angeht.

gibt es hier jemanden, der beide sprachen gut genug kennt und die vorteile von Python gegenüber Ruby mal beschreiben kann?
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Freitag 12. November 2004, 01:25

Hi murphy,

ich kenn ja nun einige Programmiersprachen und habe im Laufe der Zeit auch in vielen gecodet. Ruby habe ich mir natürlich auch schon angeschaut, kann mich aber mit einigen Sachen dort nicht wirkich anfreunden.
1. das leidige end bei Blöcken, ich rücke Blöcke schon immer ein, ausser bei Basic und Assembler, die das nicht vertragen. Gerade das bei Python Blöcke durch die Einrückung definiert sind fand ich von Anfang an schön :)
2. daß man bei Methoden vor dem Namen bei der Deklaration nochmal den Klassennamen angeben muss.
3. die in vielen Fällen sehr Perlartige Syntax von Ruby hat mich auch abgeschreckt, wie damals als ich eine Sprache für Websachen suchte und zum Glück nach Perl dann PHP entdeckte.
4. keine Möglichkeit von Mehrfachvererbung unter Ruby. Ich vermeide Mehrfachvererbung zwar nach Möglichkeit, aber manchmal ist es sehr praktisch ein Objekt von str und einer anderen Klasse abzuleiten.

Dem Text in dem Link merkt man sein Alter wirklich an. Dort wird gesagt daß bei Ruby eben alles ein Objekt ist. Seit Python Version 2.1 gilt das auch für Python.
Einen Vorteil sehe ich auch darin, daß ich bei Python frei bin imperativ, funktional oder objektorientiert zu programmieren und das innerhalb eines Scripts, so wie es die Problemstellung eben erfordert.


Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Freitag 12. November 2004, 11:34

Der Vorteil von Python ist, dass du im Gegensatz zu PHP Module auf einem Webserver selbst nachrüsten kannst, auch wenn du keine Shell hast.
TUFKAB – the user formerly known as blackbird
Sorgenkind
User
Beiträge: 34
Registriert: Samstag 24. Juli 2004, 19:25
Kontaktdaten:

Beitragvon Sorgenkind » Freitag 12. November 2004, 13:47

Noch ein unterschied von ruby und python:

Bei Python gilt "explicit is better than implecit"... das hast du bei ruby nie...

A.b ist das gleiche wie a.b() in ruby zb... finde ich persönlich nicht so toll und bin deswegen u.a. pythonanhänger...

ruby ist auch um einiges langsamer als python... und gegen python+psyco sieht es total alt aus...

und @topic
zu php sag ich nur quick&dirty ;)
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 12. November 2004, 15:44

Sorgenkind hat geschrieben:zu php sag ich nur quick&dirty ;)

Jep. Python hat eine klare Struktur und OOP auch wenn die Ruby Leute uns sagen wollen dass das nicht so ist *g*.
Aber Ruby kann afaik auch eine Art Mehrfachvererbung durch sogenannte Mixins, von denen murphy uns sicher einiges erzählen kann.

Ich hatte die Wahl zwischen Python weiterlernen und es auch auf Webseiten einzusetzen, obwohl kaum Hoster Python anbieten, oder PHP. Aber in PHP hab ich es nur zusammengebracht ein kleines Newssystem zu schreiben, und danach habe ich festgestellt das mir PHP nicht wirklich gefällt. Seit dem nurtze ich auch für Webseiten Spyce und bin froh drüber.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
murphy
User
Beiträge: 60
Registriert: Samstag 30. Oktober 2004, 01:34
Wohnort: Berlin
Kontaktdaten:

Beitragvon murphy » Samstag 13. November 2004, 16:56

Dookie hat geschrieben:1. das leidige end bei Blöcken
wie immer der erster und wichtigster punkt für alle Python-programmierer ;) ich finde das ein wenig kindisch, weil es wichtigere dinge gibt als ein paar eingesparte end's. warum muss Python so was experimentelles haben?
da ich meine bisherigen bedenken zu nichtredundanten indents (oder wie nennt ihr das?) nicht einfach kopieren will, link zum thread im Ruby-forum:
http://www.rubyforen.de/ptopic,2191.html#2191
kritik erwünscht :) aber ich glaube, wir sollten uns auf wichtigere kriterien konzentrieren.

2. daß man bei Methoden vor dem Namen bei der Deklaration nochmal den Klassennamen angeben muss.
muss man nicht. was du meinst, ist vermutlich folgendes:

Code: Alles auswählen

class Foo
   def Foo.bar
      ...
das ist eine klassenmethode (was mir in Python leider fehlt.) normalerweise benutzt man instanzmethoden, genau wie in Python:

Code: Alles auswählen

class Foo
   def bar
      ...
kein Foo nötig.

3. die in vielen Fällen sehr Perlartige Syntax von Ruby hat mich auch abgeschreckt, wie damals als ich eine Sprache für Websachen suchte und zum Glück nach Perl dann PHP entdeckte.
ja, Ruby kann fast wie Perl aussehen, wenn du magst. es kann auch (semantisch) wie Smalltalk aussehen. oder wie Haskell oder Delphi oder Python. das ist die freiheit von Ruby.
Matz (Erfinder von Ruby) mochte an Perl vor allem die möglichkeit, einfache dinge ganz kurz hinzuschreiben. Perl erkauft sich das mit z.T. grausligem zeichenwust, Ruby dämmt diesen wust ein und packt alles in eine solide OO-struktur: /Regexps/, $1, if-modifier können den code lesbarer machen, wenn man sie gut einsetzt. darum gibt es sie auch in Ruby. im unterschied zu Python wollte man bei Ruby ganz klar auch Perl-ideen weiterentwickeln.
PHP ist auch nicht ganz frei von allen Perl-kürzeln, aber dafür frei von gutem design ;) leider muss ich trotzdem da drin programmieren!

4. keine Möglichkeit von Mehrfachvererbung unter Ruby. Ich vermeide Mehrfachvererbung zwar nach Möglichkeit, aber manchmal ist es sehr praktisch ein Objekt von str und einer anderen Klasse abzuleiten.
Aber Ruby kann afaik auch eine Art Mehrfachvererbung durch sogenannte Mixins, von denen murphy uns sicher einiges erzählen kann.
das ist ein größeres thema. falls Dookie mit "von str ableiten" meint, dass das objekt fähigkeiten von einer anderen Klasse übernehmen soll: genau das tun mixins. ein paar infos hier:
http://www.approximity.com/rubybuch2/node72_main.html
http://www.rubygarden.org/faq/section/show/8
@Dookie: bitte poste mal ein beispiel für eine sinnvolle mehrfachvererbung.

Dem Text in dem Link merkt man sein Alter wirklich an. Dort wird gesagt daß bei Ruby eben alles ein Objekt ist. Seit Python Version 2.1 gilt das auch für Python.
sind klassen objekte? was ist mit true, null oder 0? kann ich sie auch syntaktisch als objekte behandeln, also 0.abs() oder null.__str__() ? ich kenne Python leider nicht gut genug.

Einen Vorteil sehe ich auch darin, daß ich bei Python frei bin imperativ, funktional oder objektorientiert zu programmieren und das innerhalb eines Scripts, so wie es die Problemstellung eben erfordert.
genau das kann man in Ruby auch. beim funktionalen gibt's defizite, das stimmt, aber ich habe gehört, dass Python's lambda auch seine grenzen hat.

Leonidas hat geschrieben:Python hat eine klare Struktur und OOP auch wenn die Ruby Leute uns sagen wollen dass das nicht so ist *g*.
Python ist mit sicherheit klarer als Perl und objektorientierter als C++.

ich finde die tendenz von Python zu funktionen (damit meine ich alles, was keinen empfänger hat wie len) nicht sinnvoll...warum nicht "test".len()?
noch was: die zwingenden klammern bei funktionen verhindern schöne methodenreihen, wie sie in Ruby allgegenwärtig sind:

Code: Alles auswählen

input = DATA.read.split "----\n"
(ähnlicher gedankengang wie bei unix-befehlen, nur OO.) wozu diese klammern?
Benutzeravatar
murphy
User
Beiträge: 60
Registriert: Samstag 30. Oktober 2004, 01:34
Wohnort: Berlin
Kontaktdaten:

Beitragvon murphy » Samstag 13. November 2004, 16:57

Sorgenkind hat geschrieben:A.b ist das gleiche wie a.b() in ruby zb... finde ich persönlich nicht so toll
was meinst du damit? dass die klammern optional sind?

ach noch ein wenig selbstkritik, damit das ganze nicht zum glaubenskrieg ausartet:
http://www.rubyist.net/~matz/slides/rc2 ... 00004.html
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Beitragvon Milan » Samstag 13. November 2004, 17:47

murphy hat geschrieben:
Sorgenkind hat geschrieben:A.b ist das gleiche wie a.b() in ruby zb... finde ich persönlich nicht so toll
was meinst du damit? dass die klammern optional sind?


Jo. Bei dem Code siehst du den Unterschied:

Code: Alles auswählen

class A:
    x=1
    def xy(self):
        return self.x

a=A()
#Methode aufrufen und Methode zurückgeben sind 2 Dinge
print a.xy()
print a.xy
print (lambda f:f())(a.xy)
#Attribute gibts auch noch
print a.x

Es gibt in meinen Augen keinen Unterschied zwischen Methoden, Methodenaufrufen und Attributen.
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Samstag 13. November 2004, 19:06

Hi Murpy,

murphy hat geschrieben:
Dookie hat geschrieben:1. das leidige end bei Blöcken
wie immer der erster und wichtigster punkt für alle Python-programmierer ;) ich finde das ein wenig kindisch, weil es wichtigere dinge gibt als ein paar eingesparte end's. warum muss Python so was experimentelles haben?
da ich meine bisherigen bedenken zu nichtredundanten indents (oder wie nennt ihr das?) nicht einfach kopieren will, link zum thread im Ruby-forum:
http://www.rubyforen.de/ptopic,2191.html#2191
kritik erwünscht :) aber ich glaube, wir sollten uns auf wichtigere kriterien konzentrieren.

Naja, das war das erste was mir bei Python positivermassen aufgefallen ist. Ich hab früher viel in Modula2 und Oberon2 gemacht, da waren auch die begin...end nötig, ich hab mir dann auf eine Tastenkombi ein Macro gelegt, daß mir das tippen von begin...end ersparte :)
murphy hat geschrieben:
2. daß man bei Methoden vor dem Namen bei der Deklaration nochmal den Klassennamen angeben muss.
muss man nicht. was du meinst, ist vermutlich folgendes:

Code: Alles auswählen

class Foo
   def Foo.bar
      ...
das ist eine klassenmethode (was mir in Python leider fehlt.) normalerweise benutzt man instanzmethoden, genau wie in Python:

Code: Alles auswählen

class Foo
   def bar
      ...
kein Foo nötig.

Aha, bei den Beispielen die ich zu Ruby fand, waren alle Methoden wie Foo.bar definiert :)
murpy hat geschrieben:
3. die in vielen Fällen sehr Perlartige Syntax von Ruby hat mich auch abgeschreckt, wie damals als ich eine Sprache für Websachen suchte und zum Glück nach Perl dann PHP entdeckte.
ja, Ruby kann fast wie Perl aussehen, wenn du magst. es kann auch (semantisch) wie Smalltalk aussehen. oder wie Haskell oder Delphi oder Python. das ist die freiheit von Ruby.
Matz (Erfinder von Ruby) mochte an Perl vor allem die möglichkeit, einfache dinge ganz kurz hinzuschreiben. Perl erkauft sich das mit z.T. grausligem zeichenwust, Ruby dämmt diesen wust ein und packt alles in eine solide OO-struktur: /Regexps/, $1, if-modifier können den code lesbarer machen, wenn man sie gut einsetzt. darum gibt es sie auch in Ruby. im unterschied zu Python wollte man bei Ruby ganz klar auch Perl-ideen weiterentwickeln.
PHP ist auch nicht ganz frei von allen Perl-kürzeln, aber dafür frei von gutem design ;) leider muss ich trotzdem da drin programmieren!

dito
murpy hat geschrieben:
4. keine Möglichkeit von Mehrfachvererbung unter Ruby. Ich vermeide Mehrfachvererbung zwar nach Möglichkeit, aber manchmal ist es sehr praktisch ein Objekt von str und einer anderen Klasse abzuleiten.
Aber Ruby kann afaik auch eine Art Mehrfachvererbung durch sogenannte Mixins, von denen murphy uns sicher einiges erzählen kann.
das ist ein größeres thema. falls Dookie mit "von str ableiten" meint, dass das objekt fähigkeiten von einer anderen Klasse übernehmen soll: genau das tun mixins. ein paar infos hier:
http://www.approximity.com/rubybuch2/node72_main.html
http://www.rubygarden.org/faq/section/show/8
@Dookie: bitte poste mal ein beispiel für eine sinnvolle mehrfachvererbung.

ok, da überleg ich mir mal was.
murpy hat geschrieben:
Dem Text in dem Link merkt man sein Alter wirklich an. Dort wird gesagt daß bei Ruby eben alles ein Objekt ist. Seit Python Version 2.1 gilt das auch für Python.
sind klassen objekte? was ist mit true, null oder 0? kann ich sie auch syntaktisch als objekte behandeln, also 0.abs() oder null.__str__() ? ich kenne Python leider nicht gut genug.

Einen Vorteil sehe ich auch darin, daß ich bei Python frei bin imperativ, funktional oder objektorientiert zu programmieren und das innerhalb eines Scripts, so wie es die Problemstellung eben erfordert.
genau das kann man in Ruby auch. beim funktionalen gibt's defizite, das stimmt, aber ich habe gehört, dass Python's lambda auch seine grenzen hat.

Leonidas hat geschrieben:Python hat eine klare Struktur und OOP auch wenn die Ruby Leute uns sagen wollen dass das nicht so ist *g*.
Python ist mit sicherheit klarer als Perl und objektorientierter als C++.

ich finde die tendenz von Python zu funktionen (damit meine ich alles, was keinen empfänger hat wie len) nicht sinnvoll...warum nicht "test".len()?
noch was: die zwingenden klammern bei funktionen verhindern schöne methodenreihen, wie sie in Ruby allgegenwärtig sind:

Code: Alles auswählen

input = DATA.read.split "----\n"
(ähnlicher gedankengang wie bei unix-befehlen, nur OO.) wozu diese klammern?


Code: Alles auswählen

input = DATA.read().split("\n")

geht natürlich auch in Python. Die Klammern zeigen das es eben ein Methodenaufruf ist und nicht die Methode. Du kannst ja z.B. bei GUI-Programmierung auch eine Methode an eine Widgetaktion binden.
Hier braucht man die Unterscheidung, ob der Rückgabewert der Funktion oder die Funktion selbst als Parameter gemeint ist.
Methoden sind bei Python eben auch nur Attribute einer Instanz. So kannst Du z.B. in Python mit

Code: Alles auswählen

if hasattr(foo, "write"):
    ...

testen ob foo eine write-Methode hat oder nicht.

Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 13. November 2004, 19:07

murphy hat geschrieben:
Dookie hat geschrieben:1. das leidige end bei Blöcken
wie immer der erster und wichtigster punkt für alle Python-programmierer ;) ich finde das ein wenig kindisch, weil es wichtigere dinge gibt als ein paar eingesparte end's. warum muss Python so was experimentelles haben?

Dafür benehmen sich die Ruby Leute kindisch wenn wie probleme haben Python Code aus einer Seite zu kopieren, also mit null Einrückungen und null Lesbarkeit. Und das Indenting ist gar nicht so experimentell, das ist einfach mal anders, und ausserdem ist Python nicht die erste Sprache die sowas macht.

murphy hat geschrieben:da ich meine bisherigen bedenken zu nichtredundanten indents (oder wie nennt ihr das?) nicht einfach kopieren will, link zum thread im Ruby-forum:
http://www.rubyforen.de/ptopic,2191.html#2191
kritik erwünscht :) aber ich glaube, wir sollten uns auf wichtigere kriterien konzentrieren.

Ok, schluss damit hier.

murphy hat geschrieben:ja, Ruby kann fast wie Perl aussehen, wenn du magst. es kann auch (semantisch) wie Smalltalk aussehen. oder wie Haskell oder Delphi oder Python. das ist die freiheit von Ruby.
Matz (Erfinder von Ruby) mochte an Perl vor allem die möglichkeit, einfache dinge ganz kurz hinzuschreiben. Perl erkauft sich das mit z.T. grausligem zeichenwust, Ruby dämmt diesen wust ein und packt alles in eine solide OO-struktur: /Regexps/, $1, if-modifier können den code lesbarer machen, wenn man sie gut einsetzt. darum gibt es sie auch in Ruby. im unterschied zu Python wollte man bei Ruby ganz klar auch Perl-ideen weiterentwickeln.

In der Entwicklung von Python hat man warscheinlich gedacht, das viele Perl Ideen zu Perlartigem Code führen. Man hat eigentlich auch weniger auf Perl geschaut, sondern eine neue Sprache gemacht. Wenn man hätte Perl verbessern wollen, dann hätte man ja nicht eine neue Sprache gemacht sondern an Perl6 mitgemacht.

murphy hat geschrieben:PHP ist auch nicht ganz frei von allen Perl-kürzeln, aber dafür frei von gutem design ;) leider muss ich trotzdem da drin programmieren!

Mich bringt inzwischen nichts freiwillig zu PHP.

murphy hat geschrieben:das ist ein größeres thema. falls Dookie mit "von str ableiten" meint, dass das objekt fähigkeiten von einer anderen Klasse übernehmen soll: genau das tun mixins. ein paar infos hier:
http://www.approximity.com/rubybuch2/node72_main.html
http://www.rubygarden.org/faq/section/show/8
@Dookie: bitte poste mal ein beispiel für eine sinnvolle mehrfachvererbung.

Ja, genau das kann man seit neueren Python Versionen. Genau so werden auch New Style Klassen gemacht: durch vererben von Object. Man kann in Python inzwischen von jedem Typ erben. Warum fragst du um sinnvolle beispiele, wenn du dir einfach die sinnvollen Mixin Beispiele nehemen kannst?

murphy hat geschrieben:sind klassen objekte? was ist mit true, null oder 0? kann ich sie auch syntaktisch als objekte behandeln, also 0.abs() oder null.__str__() ? ich kenne Python leider nicht gut genug.

Code: Alles auswählen

>>>type(true)
<type 'bool'>
>>>class mybool(bool):
>>>    pass
>>>
>>>type(null)
NameError: name 'null' is not defined
>>>type(0)
<type 'int'>
>>>class myint(int):
>>>    pass
>>>

Es ist auch kein Problem sogar von NameError zu erben. Das könnte dir gefallen:

Code: Alles auswählen

>>>"abc".upper()
ABC

Wenn du möchtest kannst du auch von int erben und eine upper() Methode machen, blos Sinn macht das halt keinen ;)

murphy hat geschrieben:ich finde die tendenz von Python zu funktionen (damit meine ich alles, was keinen empfänger hat wie len) nicht sinnvoll...warum nicht "test".len()?

Gute Frage, warum nicht? Das haben sich auch die Python Entwickler gedacht, deswegen macht len() genau das:

Code: Alles auswählen

>>>len('abc')
3
>>>'abc'.__len__()
3

Du siehst also das len() __len__() aufruft, das kannst du dann auch in deinen Klassen definieren und auch deine Klassen funktionieren dann mit len().[/python]
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]