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)
edit2
Если вы понизите вопрос, напишите почему, чтобы я знал, какая информация отсутствует, и могу ее добавить.

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

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

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

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

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

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

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