V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
pzkpfwiii
V2EX  ›  Python

求问 Python 的交叉引用

  •  
  •   pzkpfwiii · 2019-07-06 01:13:46 +08:00 · 2168 次点击
    这是一个创建于 1978 天前的主题,其中的信息可能已经有所发展或是发生改变。
    # foo1.py
    from foo2 import Foo2
    class Foo1(Foo2):
    foo1 = ""

    # foo2.py
    class Foo2():
    foo2 = ""
    def test():
    from foo1 import Foo1
    a = Foo1()
    print(isinstance(a, Foo2))
    if __name__ == '__main__':
    test()

    结果居然是 False,求大佬给个解释
    3 条回复    2019-07-06 16:34:12 +08:00
    limuyan44
        1
    limuyan44  
       2019-07-06 01:41:13 +08:00
    连 python 代码你都不格式化。。。。
    hdyuik
        2
    hdyuik  
       2019-07-06 02:14:53 +08:00   ❤️ 2
    foo1.py 的中的 foo2, 改成__main__, 输出就是 True.
    至于为什么, 大概是 python 对于 module 的命名问题, foo2 module 会被命名为__main__ module, 因而 foo1 import 的时候并不认为 foo2 已经被导入, 那么 foo2 会被重新导入一次, 第二次的导入的 Foo2 class 和第一次的不一样
    sayano
        3
    sayano  
       2019-07-06 16:34:12 +08:00
    靠 我在 s1 见到了这个帖子
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3437 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 11:24 · PVG 19:24 · LAX 03:24 · JFK 06:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.