ROBO Pro Coding: Globale Variablen und Funktionen in der Blocky-Umgebung

Hier habt Ihr die Möglichkeit direkt mit dem fischertechnik Team in Kontakt zu treten
Here you have the Possibility to get in direct contact with the fischertechnik-Team

Moderator: fischertechnik Mitarbeiter

Forumsregeln
Bitte beachte die Forumsregeln!

In dieser Unterkategorie können nur fischertechnik-Mitarbeiter und Moderatoren antworten!
Antworten
Benutzeravatar
MINT-Matthias
Beiträge: 7
Registriert: 16 Apr 2022, 23:55
Wohnort: Oberursel
Kontaktdaten:

ROBO Pro Coding: Globale Variablen und Funktionen in der Blocky-Umgebung

Beitrag von MINT-Matthias » 09 Mai 2022, 13:52

Ein freundliches Hallo an die ft-Profis,

folgende Fragestellung habe ich bereits im RoboPro-Unterforum an alle gestellt, jedoch noch keine Antwort erhalten.
Daher möchte ich es an dieser Stelle nochmals probieren:

* Bei der Blocky-Programmierung (in ROBO Pro Coding) scheinen alle in den selbst-geschriebenen Funktionen eingeführten Variablen
als Global definiert zu sein. Man kann auf diese Variablen beispielsweise in der Main-Schleife oder in anderen selbst-programmierten
Funktionen mühelos zugreifen.
* Um die Blocky-Programmierung großer Projekte übersichtlich zu gestalten, füge ich meine eigenen Funktionsdefinitionen jeweils in eine
neue "Quellcode-Datei" ein. Auf der Python-Ebene bedeutet jede neue Quellcode-Datei (mit Namen "xxx") ein neues Modul mit Namen
"lib.xxx", welches dann am Anfang der Hauptprogramm-Datei (main.py) importiert wird (Befehl: "from lib.xxx import *").
* Aber: Im Hauptprogramm (main.py) definierte (globale) Variablen sind in den selbst-definierten Funktionen, welche in der separaten
Quellcode-Datei (mit Namen "xxx") abgelegt sind, nicht benutzbar.
* Und auch andersherum kann man aus dem Hauptprogramm nicht auf die (globalen) Variablen zugreifen, welche in den eigenen Funktionen,
(abgelegt in der separaten Quellcode-Datei mit Namen "xxx") definiert wurden.
* Das heißt, dass man bei einer selbst-definierten Funktion in der Hauptprogramm-Datei zwar auf alle (globalen) Variablen der Main-Schleife
zugreifen kann, dies aber nicht möglich ist, wenn die gleiche Funktion in einer eigenen Quellcode-Datei mit Namen "xxx" liegt.

Gibt es hierfür innerhalb der Blocky-Umgebung von ROBO Pro Coding eine Lösung?

Danke für Euren Input zu diesem Thema,

Matthias.

fite-Team
fischertechnik Mitarbeiter
Beiträge: 82
Registriert: 23 Okt 2020, 18:59

Re: ROBO Pro Coding: Globale Variablen und Funktionen in der Blocky-Umgebung

Beitrag von fite-Team » 25 Jul 2022, 15:32

Hallo Matthias,

in ROBO Pro Coding wird Google Blockly verwendet und bei Blockly sind alle Variablen global pro Modul. D.h. innerhalb einer Datei können Sie auf alle lokalen Variablen aus jeder Funktion zugreifen.

Wenn Sie ein eigenes Modul z.B. lib.ModulA anlegen, so sind die Variablen in diesem Modul global, können jedoch aus anderen Modulen oder aus der main nicht zugegriffen werden.

Sie können auf einzelne Variablen außerhalb des Moduls Zugriff gewähren, wenn Sie Setter- und Getter-Funktionen implementieren und über Imports diese Funktionen aufrufen.

Auf diese Weise können Sie auch aus der Main auf die Variable aus dem ModulA zugreifen.

Freundliche Grüße
fite-Team
Dateianhänge
test2.PNG
test2.PNG (37.12 KiB) 5515 mal betrachtet
test1.PNG
test1.PNG (43.51 KiB) 5515 mal betrachtet

Antworten