使用模块
Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用
编写一个模块1,文件为test01.py
title = '模块1'
#函数
def say_hello():
print '我是 %s' %title
#类
class Cat(object):
pass
编写一个模块2,文件为test02.py
title = '模块2'
#函数
def say_hello():
print '我是 %s' %title
#类
class Dog(object):
pass
导入模块import
导入模块后,我们就有了变量 指向该模块,利用这个变量,就可
以访问模块的所有功能
import test01
import test02
test01.say_hello()
test02.say_hello()
cat = test01.Cat()
print cat
dog = test02.Dog()
print dog
别名
导入模块时,还可以使用别名,这样,可以在运行时根据当前环境选择最合适的模块
和上面代码功能一致,只是名字更改了,方便操作
import test01 as CatModule
import test02 as DogModule
CatModule.say_hello()
DogModule.say_hello()
cat = CatModule.Cat()
print cat
dog = DogModule.Dog()
print dog
取出包中想要的功能
from py文件名 import 类/函数
表示从包中取出想要的功能
#可以只导入类或函数
#如果导入的两个函数名一致会执行后导入的函数
from test01 import Cat
from test02 import say_hello
from test01 import say_hello as test01_say_hello
say_hello()
test01_say_hello()
miaomiao = Cat()
python的解释器在导入模块的时候,会:
1.搜索当前目录指定的模块文件,如果有就直接导入
2.如果没有,再搜索系统目录
注意:在开发时,给文件起名,不要和系统模块文件重名
例如导入random这个系统模块文件:
import random
rand = random.randint(0,10)
print rand
在很多python文件中会看到以下格式的代码
#导入模块
#定义全部变量
#定义类
#定义函数
#在代码的下方
def main():
pass
if __name__ == '__main__'
main()
__name__属性
__name__属性可以做到,测试模块的代码只在测试情况下被运行,而在被导入时不会执行
__name__是python的一个内置属性,记录着一个字符串
如果是被其他文件导入时,__name__就是模块名
如果是当前执行的程序,__name__就是__main__
此文件名为test.py
#全局变量,函数,类 直接执行的代码不是向外界提供的工具
def say_hello():
print 'hello hello'
#print 'have a nice day!'
#如果直接在模块中输出,得到的是__main__
if __name__ == '__main__':
print __name__
#文件被导入的时候,能够直接被执行的代码不需要执行
print 'robort开发的程序'
say_hello()
导入文件:
#在导入的.py文件中,输出是 文件名
import test
#结果会显示为空,正好验证了上面,那些导入包的时侯,能够直接被执行的代码不需要执行