Robo Pro Coding - Fehler bei Funktionsnamen

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
Benutzeravatar
thomasdr
Beiträge: 144
Registriert: 02 Nov 2010, 17:00
Kontaktdaten:

Robo Pro Coding - Fehler bei Funktionsnamen

Beitrag von thomasdr » 09 Mai 2025, 08:54

Hallo,

ich hatte bei einer Funktionsdefinition immer den Fehler "AttributeError: 'function' object has no attribute 'CW" bekommen.

Hat etwas gedauert bis ich gemerkt hatte, das es am Namen liegt und eine Funktion nicht "Motor" heißen darf.
"motor" ist kein Problem.

Des Weiteren kann man auch keine Variable "Motor" übergeben.


Gruß Thomas
Fehler.png
Fehler.png (485.79 KiB) 418 mal betrachtet
motor.png
motor.png (732.26 KiB) 413 mal betrachtet

tintenfisch
Beiträge: 498
Registriert: 03 Jan 2018, 22:04

Re: Robo Pro Coding - Fehler bei Funktionsnamen

Beitrag von tintenfisch » 09 Mai 2025, 10:47

Das liegt daran, dass Du zunächst eine Klasse "Motor" importierst, die dann aber mit der Funktion Motor "überschreibst". Sobald das Programm die Funktion Motor sieht, ist der Name Motor an die Funktion gebunden und die Klasse Motor "weg". Die Funktion hat das angefragte Attribut nicht.

Grundsätzlich darf eine Funktion "Motor" heißen, nur kannst Du nicht die Klasse Motor importieren und eine Funktion Motor gleichzeitig verwenden. Du kannst auch eine Variable "Motor" nennen, solange Du die Klasse "Motor" nicht verwenden möchtest. Ob dies sinnvoll ist, sei mal dahingestellt, eigentlich werden Variablen und Funktionen immer kleingeschrieben, Klassen verwenden CamelCase (<https://en.wikipedia.org/wiki/Camel_case>).

Nur nebenbei:

Code: Alles auswählen

from fischertechnik.controller.Motor import Motor 
ist schlechter Stil, aber daran kannst Du nix ändern, das hat ft "verbockt". ;)

Benutzeravatar
thomasdr
Beiträge: 144
Registriert: 02 Nov 2010, 17:00
Kontaktdaten:

Re: Robo Pro Coding - Fehler bei Funktionsnamen

Beitrag von thomasdr » 10 Mai 2025, 21:44

Danke. Hätte ich auch selber drauf kommen können.
Ich bin erst einen Tag mit der GUI und Python unterwegs.
Bei letzterem ist die KI ein Segen.
Ich bin immer wieder von der Kreativität von ChatGPT überrascht.
"Du hast nur einen Motor, soll ich deine Routinen auf 4 Motoren erweitern. Du hast auch Schalter, soll ich sie auch abfragen?"
Gruß Thomas

Antworten