IsInstance () gibt falsch zurück, weil der Importpfad nicht gleich dem Klassentyp istPython

Python-Programme
Anonymous
 IsInstance () gibt falsch zurück, weil der Importpfad nicht gleich dem Klassentyp ist

Post by Anonymous »

Ich möchte überprüfen, ob eine Variable eine bestimmte Klasse ist: < /p>

Code: Select all

if isinstance(inv, src.components.inventory.Inventory):
inv.items.remove(entity)
< /code>
, aber die Prüfung geht schief, da sich der Klassentyp vom Import unterscheidet: < /p>
print(f"type of inv: {type(inv)}")
< /code>
führt zu < /p>
type of inv: 
Ich arbeite gerade im Roguelike -Tutorial, aber aus einigen Gründen habe ich alle Codedateien auf SRC/und Komponenten in SRC/Komponenten /.
Wie kann ich dieses Problem lösen? Ich könnte einen String -Vergleich durchführen, aber dann fehlt mir der Typ, um Entfernung aufzurufen.

Code: Select all

class BaseComponent:
...
SRC/Components/inventory.py:

Code: Select all

from src.components.base_component import BaseComponent

class Inventory(BaseComponent):
...
SRC/Components/consumable.py:

Code: Select all

from src.components.inventory import Inventory

class Consumable(BaseComponent):
def consume(self) -> None:
entity = self.parent
inv = entity.parent
if isinstance(inv, Inventory):
inv.items.remove(entity)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post