面向对象编程 什么模块 导入
目录
面向过程编程
对着过程编程
面向过程编程:一步一步(一个函数一个函数),上一个函数的输出是下一个函数的输入
优点:代码的独立性提高了,流程清晰
缺点:一个错误,让程序直接崩掉了
什么是模块
模块是一系列功能的集合体,而函数是某个功能的集合体,因此模块可以看成一堆函数的集合体。
模块的四种形式
内置模块
python解释器启动自带的模块,如time/random/os/sys...
pip安装模块(第三方模块)
pip install jieba/pycharm安装
自定义模块
自定义代码
包
把一系列模块知道到一起的文件夹(注:文件夹下有一个__init__.py
文件,该文件夹称之为包)
import和from...import
import
以time为例:
1.开辟内存空间,内存空间命名为time
2.把time.py中的所有代码读入名称空间,然后运行
3.通过time.方法名使用time模块中的方法
import time
time.sleep(10)
优点:永不冲突
缺点:每次导入多输入资格字符,非常麻烦
form...import
以time为例:
1.开辟内存空间,内存空间命名为time
2.把time.py中的所有代码读入名称空间,然后运行
3.把sleep()读入import和from...import.py中,因此可以直接使用方法名
#import和from...import.py
from time import sleep
sleep()
如果想要使用多个方法:
from time import sleep,time
如果想要使用非常多的方法
from time import *
优点:少输入几个字符
缺点:容易发生冲突
自定义模块
# testt.py
x=20
def f1():
print('dd')
#import和from...import.py
import testt
print(x)
f1()
from testt import *# 不要使用
自定义模块的用途
分文件存储代码
函数与函数之间分开
让代码更清晰
不同的模块干不同的事
循环导入
第一种解决方法
#m1.py
x=10
from m2 import y
print('m1',x,y)
#m2.py
y=20
from m1 import x
print('m2',x,y)
第二种解决方法
#m1.py
def f1():
from m2 import y
print('m1:', x, y)
x = 10[
f1()
#m2.py
def f2():
from m1 import x
print('m2:', x, y)
y=20
f2()
模块的搜索路径
内存——》内置——》自定义
环境变量
python文件的两种用途
执行文件:当前运行的文件
模块文件
一个文件既可以是执行文件,又可以是模块文件
__name__ == '__main__'不成立, __name__ != '__main__'
#当testt为模块文件时,__name__等于文件名
#__name__是每个文件独有的,当该文件作为执行文件运行时,__name__等于'__main__';当该文件作为模块文件导入时,__name__等于文件名