python快速学习4

模块

用编辑器写了,不能用解释器了
现在遇到一个问题,就是模块无法导入的问题,添加了路径却还是找不到
原来pycharm自带的就有console,感觉和MATLAB一样
以后直接在pycharm中的console中写代码

引用模块

自己写了个fib_fun的模块
引用模块方法

>>> import fib_fun  #这样只是引入了模块,必须通过模块来访问成员
>>> fib_fun.fib(10)
1
1
2
3
5
8
>>> fib_fun.fib2(10)
[1, 1, 2, 3, 5, 8]
>>> from fib_fun import fib, fib2 #这样引入了模块中的成员,就可以直接访问了
>>> fib(10)
1
1
2
3
5
8
>>> fib2(10)
[1, 1, 2, 3, 5, 8]
>>> from fib_fun import *  #这样直接引用所有成员函数,不建议使用,使代码很难读懂

main
加入__main__后,py文件作为模块引入的时候不会执行,在外部单独运行的时候就会执行(必须有__main__代码)

if __name__ == "__main__" :
    import sys
    fib2(int(sys.argv[1]))
# 直接运行会出现边界错误,因为没有参数,必须在命令行中运行,并且给参数

搜索路径
sys.path文件是所有python文件的路径,将自己的路径添加进去即可(用append)

>>> import sys
>>> sys.path.append('E:python_projectmodule_testmain.py')

pyc文件
成功编译py文件之后会产生pyc文件,该文件是预编译文件

标准模块

python带有一个标准模块库,文档在python库参考手册中

利用sys.ps1和sys.ps2可以修改主提示符和辅助提示符

dir()

>>> dir(fib_fun)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'fib', 'fib2']
>>> dir()
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'fib_fun', 'sys']

包是模块集,每个目录下都必须有__init__.py来作为标志
比如我安装了一个图像处理包PIL

>>> import PIL.Image   # 这种调用方式必须写全名
>>> pic = PIL.Image.open("D:planet.png")
>>> pic = pic.convert("L")
>>> pic.save('D:planet3.png')
>>> pic.save('D:planet3.jpg')
>>>


可以通过from方式调用子模块

>>> from PIL import Image 这种调用方式写包名
>>> pic = Image.open("D:planet.png")

from可以调用子模块或者模块中的函数
直接import方式只能调用子模块

原文地址:https://www.cnblogs.com/sslblog/p/6930411.html