请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

你好,我想问下,入口文件执行同一个包的导入文件,为什么显示package没有包,而不同包下导入会显示包名呢?

正在回答 回答被采纳积分+3

3回答

7七月 2020-07-05 13:11:38

贴一下具体代码,这样描述看不出来问题

0 回复 有任何疑惑可以回复我~
  • 提问者 smartzhao #1
    前提是d8和d9都是demo包下的
    
    d8.py内容:
    print('~~~~~~~~~~~~~~~~~~~~~d8~~~~~~~~~~~~~~~~~~~~')
    print('name: ' + __name__)
    print('package: ' + (__package__ or '该模块不属于任何包'))
    
    d9.py内容:
    import d8
    print('~~~~~~~~~~~~~~~d9~~~~~~~~~~~~~~~')
    print('name: ' + __name__)
    print('package: ' + (__package__ or '该模块不属于任何包'))
    
    运行python3 d9.py
    显示:
    ~~~~~~~~~~~~~~~~~~~~~d8~~~~~~~~~~~~~~~~~~~~
    name: d8
    package: 该模块不属于任何包
    ~~~~~~~~~~~~~~~d9~~~~~~~~~~~~~~~
    name: __main__
    package: 该模块不属于任何包
    
    是不是就是说同一个级别的模块的导入package都是提示没有包的
    回复 有任何疑惑可以回复我~ 2020-07-05 13:21:25
  • 7七月 #2
    可以截图吗?
    回复 有任何疑惑可以回复我~ 2020-07-05 15:06:23
提问者 smartzhao 2020-07-05 12:48:57

因为入口文件这个层级的都是没有包的?

0 回复 有任何疑惑可以回复我~
孤独小六 2020-07-05 11:07:28

入口文件不属于任何包,所以入口文件的__package__没有值,为nonetype

0 回复 有任何疑惑可以回复我~
  • 提问者 smartzhao #1
    嗯嗯,我知道这个,我疑惑的是被导入的模块。
    如果在入口文件内,被导入的模块是其他包内的模块,比如package为t,结果确实会显示t。
    但如果在入口文件内,被导入的同一个包下的模块,比如seven包下的两个模块c1和c2,把c1当成入口文件执行,c1导入c2模块,打印出来c1没有包没错,但是c2也提示没有包
    这是什么原因呢?
    回复 有任何疑惑可以回复我~ 2020-07-05 11:29:43
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信