[Python-de] urllib2 und tarfile

Olе Streicher ole-usenet-spam at gmx.net
Sa Mär 16 14:54:58 CET 2013


Marek Kubica <marek at xivilization.net> writes:
> To: Ole Streicher <ole-usenet-10 at gmx.net>
> Cc: python-de at python.org, ole-usenet-spam at gmx.net

Sag mal, warum schickst Du mir das alles noch an alle möglichen
E-Mail-Adressen? Ich lese im Usenet; da brauche ich keine Kopien per
persönlicher Mail.

> ole-usenet-spam at gmx.net (Olе Streicher) wrote:
>> Da Prototypen optional sind, muss der Compiler auch ohne diese
>> Unterstützung passenden Binärcode erzeugen können.

> Das stimmt nicht. Den Fall hatte ich letztens, denn zumindest GCC kann
> das Binärlayout nur inferieren wenn du direkt eine Funktion aufrufst,
> aus den übergebenen Parametern. Und das klappt auch nur wenn deine
> Parameter richtig sind und mit den eigentlichen Parametern
> übereinstimmen.

Natürlich müssen die Parameter richtig sein und mit den eigentlichen
übereinstimmen. Aber dafür schreibt man ja schließlich Tests bzw. schaut
im Quelltext.

> Wo es nicht klappt ist wenn du eine Funktion als Callback angibst.

Hast Du ein konkretes Beispiel? Man kann auch in K&R C (also ohne
Prototypen) Signalhandler definieren und setzen.

Und folgendes funktioniert ebenfalls:

----------------8<-------------------
#include <stdio.h>

extern foo();
int main() 
{
    return bar(foo, 12);
}

bar(func, x)
double (*func)();
int x;
{ 
    return func(x);
}

foo(x)
int x;
{ 
    return printf("foo: %i\n", x);
}
----------------8<-------------------

Alles ohne Prototypen. Und auch, wenn ich das in drei Einzeldateien
zerlege. Und mit dem gcc.

Also Butter bei die Fische: welches konkrete Beispiel hast Du
anzubieten, bei dem Prototypen *technisch* erforderlich sind und nicht
nur statischen Typtests durch den Compiler dienen (und darum -- nach der
hier zelebrierten Python-Philosphie -- unsinnig sind)?

Ole


Mehr Informationen über die Mailingliste python-de