好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Python的fromimport和import的区别?

我刚开始学习Python,对于import和from import我觉得应该是有区别的,但是在网上搜了一圈,还是没有解答我的疑惑。
ps:我是使用的python3.5版本。
例如datetime:

 from   datetime   import   datetime 
 print  (  datetime  .  now  ()) 
 

回复内容: from import : 从车里把矿泉水拿出来,给我
import : 把车给我

题主可能困惑于,为什么会有人让自己把“车里面的车”拿出来,因为这是俩不同的车啊,里面那个是玩具车 我想楼主容易搞错的原因是用了datetime的包。
datetime的包里还有个重名的datetime的子项,在这个子项下才有now的函数。
因为有个重名的子项,所以初学者可能会搞混。
把楼主的疑问换个包来回答楼主应该能清晰点:
下面三个都是正确的写法,调用的是os包里path子项的join函数,作用是将路径相加成一个完整路径:

 from os.path import join
print(join('C:\\windows', 'system32'))
  
两个import语义有差异

  import   datetime 
 print  (  datetime  .  datetime  .  now  ()) 
  
你虽然import datetime,但是now是datetime模块下datetime类的now方法,所以你要写成datetime.datetime.now啊……

from datetime import datetime是因为从datetime里引入了datetime类,引入的并不是这个模块而是这个类,自然是datetime.now

 from module import Something
  
这个纯粹是datetime这个库的命名设计问题,太傻叉了 你查一下name space的逻辑就明白了 一般情况下尽量使用import a,此时访问B时,可以通过a.B的形式。

有节制的使用from a import B,这样可以直接使用B。

避免使用from a import *,这种方法会污染命名空间,而且不能直观的显示导入哪些对象 你有一个工具箱 ,箱子里有剪刀 ,有钳子 ,有螺丝刀 等等。
现在你想拧螺丝。
然后你一个操作是:从 工具箱 里拿 螺丝刀 ,然后用 螺丝刀 去拧螺丝 ( from import)。
别一个操作是: 拿了 工具箱 ,没打开呢,直接就去 拧螺丝 ( import ) 。 import xx导入模块对于模块中的函数,每次调用需要“模块.函数”来用。
from xx import fun 直接导入模块中某函数,直接fun()就可用。
告诉你大法:from xx import * 该模块中所有函数可以直接使用。

查看更多关于Python的fromimport和import的区别?的详细内容...

  阅读:81次

CopyRight:2016-{hedonghua:year}{hedonghua:sitegs} 备案ICP:湘ICP备09009000号-16 {hedonghua:sitejym}
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网
[ SiteMap ]