Python的from import和import的区别?
程序员文章站
2022-05-22 11:27:25
...
我刚开始学习Python,对于import和from import我觉得应该是有区别的,但是在网上搜了一圈,还是没有解答我的疑惑。
ps:我是使用的python3.5版本。
例如datetime:
import : 把车给我
题主可能困惑于,为什么会有人让自己把“车里面的车”拿出来,因为这是俩不同的车啊,里面那个是玩具车 我想楼主容易搞错的原因是用了datetime的包。
datetime的包里还有个重名的datetime的子项,在这个子项下才有now的函数。
因为有个重名的子项,所以初学者可能会搞混。
把楼主的疑问换个包来回答楼主应该能清晰点:
下面三个都是正确的写法,调用的是os包里path子项的join函数,作用是将路径相加成一个完整路径:
from datetime import datetime是因为从datetime里引入了datetime类,引入的并不是这个模块而是这个类,自然是datetime.now
有节制的使用from a import B,这样可以直接使用B。
避免使用from a import *,这种方法会污染命名空间,而且不能直观的显示导入哪些对象 你有一个工具箱,箱子里有剪刀,有钳子,有螺丝刀等等。
现在你想拧螺丝。
然后你一个操作是:从 工具箱 里拿 螺丝刀,然后用 螺丝刀 去拧螺丝 ( from import)。
别一个操作是: 拿了 工具箱 ,没打开呢,直接就去 拧螺丝 ( import )。 import xx导入模块对于模块中的函数,每次调用需要“模块.函数”来用。
from xx import fun 直接导入模块中某函数,直接fun()就可用。
告诉你大法:from xx 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 * 该模块中所有函数可以直接使用。
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
相关文章
相关视频
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
推荐阅读
-
总结加载css中link与@import的几点区别
-
Python中 单引号,双引号和三引号的区别
-
python列表append和extend的区别
-
python isoweekday和weekday的区别
-
python新式类和经典类的区别?
-
ubuntu 16.04 安装 python2.7 以及 cv2, dist-package 和 site-package 的区别, import cv2 出问题解答
-
解决python import 同目录下文件夹内py失败的问题
-
Python 从相对路径下import的方法
-
python3.6:DLL load failed:找不到指定的模块(from PyQt5 import QtCore)
-
python is和==的区别
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论