【问题标题】:use isinstance() cannot check python object class import other module使用 isinstance() 无法检查 python 对象类导入其他模块
【发布时间】:2019-02-04 22:46:13
【问题描述】:
class A:
    somemethod

class A 在模块 m1

在模块m2我想用isinstance()检查对象obj1是否是类A

obj1 = A()

isinstance(obj1,A)False....type(obj1) == <class, m1.A>

我不明白为什么?帮帮我

【问题讨论】:

  • 这个问题需要清理一下(我不是 100% 了解你的问题),但如果我理解正确,你创建了一个类 A 的实例,但使用 @ 对其进行了测试987654333@ 说它不是A 的实例?我建议提供真实的代码,但这个问题的一个常见原因是如果您在交互式解释器中工作并重复定义 Areloading 相关模块。创建实例时,它将基于当前加载的A 定义,但重新加载模块将创建一个新的、不相关的A 定义。
  • 模块m2中的from m1 import A怎么样?
  • 谢谢你 – ShadowRanger – Kota Mori

标签: python classname isinstance


【解决方案1】:

您需要显式导入您要检查的类 例如

from bs4 import BeautifulSoup
...

print(type(td)) --> outputs {type} = <class 'bs4.element.Tag'>
if isinstance(td, Tag): --> {NameError}name 'Tag' is not defined

so you need to import Tag
from bs4.element import Tag

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    相关资源
    最近更新 更多