unverständliche Fehlermeldung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
hubgra
User
Beiträge: 53
Registriert: Donnerstag 20. Juli 2023, 17:20

Beim Aufruf der Funktion kommt die Fehlermeldung
File "C:\Users\huber\py\geom.py", line 61, in koeff
a = (B[1]-A[1])/(B[0]-A[0])
TypeError: 'module' object is not subscriptable

Wo ist hier ein Modul im Spiel?

Code: Alles auswählen

#liefert Koeff. [a,b] von y = a*x+b für Gerade durch A,B
def koeff(A,B):
    a = (B[1]-A[1])/(B[0]-A[0])
    b = A[1] - a*A[0]
    return [a,b]
narpfel
User
Beiträge: 645
Registriert: Freitag 20. Oktober 2017, 16:10

„subscript“ == Indexoperator, also die eckigen Klammern. Also ist mindestens eins der Objekte, auf die du in der Zeile den Indexoperator anwendest, ein Modul.
hubgra
User
Beiträge: 53
Registriert: Donnerstag 20. Juli 2023, 17:20

Was ein Index ist, weiß ich, aber ich verwende doch keinen Einzelbuchstaben als Modulbezeichner.
Ich habe den Aufruf mal ganz solo probiert, da war alles ok.
Die Fehlermeldung muß wohl von "weiter oben" kommen, es sind ja mehrere Module im Spiel.
narpfel
User
Beiträge: 645
Registriert: Freitag 20. Oktober 2017, 16:10

Die Fehlermeldung sagt, dass mindestens eins der Objekte ein Modul ist. Also musst du überprüfen, welche der Namen an der Stelle an Module gebunden sind. Und im nächsten Schritt dann, wo die Module herkommen. Die Funktion wird ja irgendwie aufgerufen. Wo genau, sollte eigentlich im Traceback stehen.
Benutzeravatar
noisefloor
User
Beiträge: 3857
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

du musst halt da ansetzen, wo A und B definiert bzw. instanziert werden. Oder hier mal den vollen Stack Trace posten, vielleicht sieht man da schon was.

Gruß, noisefloor
Benutzeravatar
sparrow
User
Beiträge: 4196
Registriert: Freitag 17. April 2009, 10:28

hubgra hat geschrieben: Freitag 24. November 2023, 18:05aber ich verwende doch keinen Einzelbuchstaben als Modulbezeichner.
Nein? Du verwendest furchtbar schlechte Namen. Nämlich, wie du selbst feststellst, Einzelbuchstaben. Und die auch noch großgeschrieben. Oder klein? Der Sinn erschließt sich kaum. Unter den Bedingungen ist es ja duchaus vorstellbar, dass du ein Modul als Parmeter an die Funktion übergeben hast.
Antworten