Seite 1 von 1
Sternchen < ja / nein >
Verfasst: Donnerstag 1. Dezember 2022, 19:34
von Nobuddy
Hallo zusammen,
was mich interessiert, ist dass ich beim Googeln von Python-Code immer wieder darauf stoße:
ich habe es bisher so gehandhabt:
Code: Alles auswählen
from PyQt5.QtWidgets import (
QApplication,
QMainWindow,
.....
)
Habe da noch im Hinterkopf, dass Sternchen verpönt sind.
Hat sich da etwas geändert?
Grüße Nobuddy
Re: Sternchen < ja / nein >
Verfasst: Donnerstag 1. Dezember 2022, 19:51
von __deets__
Nein. Immer noch verpönt. Aber da draußen sind halt ne Menge Leute, die das Internet voll kleistern mit schlechtem Code.
Re: Sternchen < ja / nein >
Verfasst: Donnerstag 1. Dezember 2022, 20:03
von narpfel
Und Google ist halt auch einfach eine *sehr* schlechte Quelle zum Lernen. Die ersten Suchtreffer für Python-Themen sind quasi durchgängig Seiten, die extremes SEO betreiben, damit ganz oben bei Google landen, und gleichzeitig unterirdisch schlechten Code zeigen.
Re: Sternchen < ja / nein >
Verfasst: Donnerstag 1. Dezember 2022, 23:29
von bwbg
Ich versuche mir gerade auszumalen, wann *-Importe sinnvoll wären. Im Grunde sind diese nur innerhalb eines packages zu erlauben als Import einer Art prelude für Datenklassen, Protokollen, ABCs, etc.
Hier kann ich selbst steuern, welche Namen ich „rausblase“ mittels __all__.
*-Importe, wie bei tkinter-Tutorien (oder eben Qt) oft gesehen, wären somit unzulässig.
Re: Sternchen < ja / nein >
Verfasst: Freitag 2. Dezember 2022, 10:17
von DeaD_EyE
Dann kann man auch gleich in C/C++ programmieren. Bei C++ habe ich mal gehört, dass es Namespaces gibt.
Re: Sternchen < ja / nein >
Verfasst: Freitag 2. Dezember 2022, 10:22
von /me
Bei Stackoverflow stieß ich neulich auf so etwas ähnliches (hier in vereinfachter Form):
Und dann kam die Frage auf, warum das Ergebnis nicht 24 ist, wie es sich gehört, sondern 21.74625462767236.
Wenn es jemandem nicht sofort klar ist: viel Spaß beim Suchen und Lernen.

Re: Sternchen < ja / nein >
Verfasst: Freitag 2. Dezember 2022, 10:28
von __deets__
@Dead_Eye: was meinst du? Sowas wie * Importe gibt es in C++ nicht. Es gibt Namensräume. Aber die sind offen, und es gibt keinen Weg, alles, was in einem enthalten ist, in einen include zu bekommen.
Re: Sternchen < ja / nein >
Verfasst: Freitag 2. Dezember 2022, 10:31
von Nobuddy
Hallo und Danke für Euren Input!
Für mich waren die Sternchen nie eine Option.
Auf den ersten Blick zwar einfacher, aber wenn es dann um das Nachlesen bestimmter Module geht, habe ich den gleichen Arbeitsaufwand, wie ich es gleich richtig gemacht hätte.
Grüße Nobuddy
Re: Sternchen < ja / nein >
Verfasst: Freitag 2. Dezember 2022, 10:46
von DeaD_EyE
__deets__ hat geschrieben: Freitag 2. Dezember 2022, 10:28
@Dead_Eye: was meinst du? Sowas wie * Importe gibt es in C++ nicht. Es gibt Namensräume. Aber die sind offen, und es gibt keinen Weg, alles, was in einem enthalten ist, in einen include zu bekommen.
Die Namensräume sind bei C++ dazugekommen (use).
Bei C gibt es die nicht, soweit ich weiß. Für mein Verständnis wird der gesamte Code aus dem Header inkludiert und hat keinen eigenen Namensraum (C).
Man muss dann also nur genügend Header inkludieren, damit man dann irgendwann eine Namenskollision hat. Ich gehe mal von aus, dass man dann den Code einfach nicht compilieren kann.
Bei Python kann ich so viel importieren, bis der RAM voll ist und es wird keine einzige Kollision geben.
So wie ich jetzt gelernt habe, gibt es wohl bei C++ keine Möglichkeit Namensräume
nicht zu nutzen?