例如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的小伙伴或者打算学习的,可以私信小编“01”领取资料!
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这个模块