Python中from import和import的区别?没有比这更好的回答了 - Go语言中文社区

Python中from import和import的区别?没有比这更好的回答了


ps:使用的python3.5版本。

例如datetime:

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

就可以执行,但是用import就不行:

import datetime
print(datetime.now())

报错:AttributeError: module ‘datetime’ has no attribute ‘now’

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

报错:ImportError: No module named ‘datetime.datetime’; ‘datetime’ is not a package

是不是datetime只能用from import而不能用import?

from import 和 import有什么区别?
在这里插入图片描述

问题解答

嗨喽:小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,
包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要的加Q裙:895817687

import Module # 引入模块
from Module import Other # 引入模块中的类、函数或者变量
from Module import * # 引入模块中的所有‘公开’成员

PS:当有一个包名为pname时,其内部 .py 文件的模块名就是 pname. 也就是说模块名中包含了 Package包 这个概念。

其区别就是:

第一个:引入的模块(假如是 mdemo )会自动生成一个‘对象‘以模块名命名,然后就可以通过这个‘对象’(mdemo)获取该模块里面的类、函数或变量等…

第二个:引入模块中的Other(这里的Other就是模块中定义的成员)成员,调用时就可以省略 模块名。

第三个:这种情况如果上面的第二个弄懂的话就不难理解了,其意思就是引入模块中所有’公开’的成员。
在这里插入图片描述

鉴于上面的问题可以快速套用上面的分析

from datetime import datetime

#引入 datetime 模块中的 datetime 类,然后就可以通过datetime这个类调用now() 方法了

#即,内部可以通过datetime.now()来调用

import datetime

#引入datetime 模块,然后通过这个模块来调用模块中的类datetime和类datetime中的方法now()

#即:内部可以通过datetime.datetime.now()来调用

也就是说,有一个模块datetime,这个模块中有一个类datetime,在这个类中有一个方法now()

我们可以验证上面这句话是否正确:

我们可以通过查看python默认查找模块位置,一个个打开看下是否有datetime这个模块
在这里插入图片描述
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_42625143/article/details/102843414
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢