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这个模块