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中from import和import的区别?没有比这更好的回答了

嗨喽:正在学习python的小伙伴或者打算学习的,可以私信小编“01”领取资料!

问题解答

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

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

其区别就是:

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

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

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

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

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

from datetime import datetime

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

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

import datetime

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

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

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

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

我们可以通过查看python默认查找模块位置,一个个打开看下是否有datetime这个模块

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

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

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。


分享到:


相關文章: