ISinstance () возвращает false, потому что путь импорта не равен типу классаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 ISinstance () возвращает false, потому что путь импорта не равен типу класса

Сообщение Anonymous »

Я хочу проверить, является ли переменная определенным классом: < /p>
if isinstance(inv, src.components.inventory.Inventory):
inv.items.remove(entity)
< /code>
Но чек идет не так, потому что тип класса отличается от импорта: < /p>
print(f"type of inv: {type(inv)}")
< /code>
Результаты < /p>
type of inv:

Я в настоящее время работаю над учебником Roguelike, но по некоторым причинам я перенес все файлы кода в SRC/и компоненты в SRC/Components /.
Как я могу решить эту проблему? Я мог бы сделать сравнение строк, но тогда мне не хватает типа, чтобы иметь возможность вызвать удаление.class BaseComponent:
...

src/components/inventory.py:
from src.components.base_component import BaseComponent

class Inventory(BaseComponent):
...

src/components/consumble.py:
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)


Подробнее здесь: https://stackoverflow.com/questions/796 ... class-type
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»