模块

面向过程编程(理论)

面向过程编程就好比在设计一条产品流水线 # 用户注册功能 1.获取用户名和密码 2.组织成固定的格式 3.文件操作写入文件 '''面向过程编程的缺陷在于:一旦要修改功能 那么需要整体改造(牵一发而动全身)''' def get_info(): username = input('username>>>:').strip() password = input('password>>>:').strip() if len(username) == 0 or len(password) == 0: print('用户名或密码不能为空') return user_idf = { '1':'admin', '2':'user', } print(user_idf) choice = input('请选择您的身份>>>:').strip() if choice in user_idf: id = user_idf.get(choice) return deal_data(username, password,id) else: print('输入不合法') return def deal_data(username,password,id): data = '%s|%s|%s\n'%(username,password,id) return save_data(data) def save_data(data): with open(r'userinfo','a',encoding='utf8') as f: f.write(data) print('注册成功') get_info()

image

模块简介

python语言 最早起源于linux运维、胶水语言、调包侠(贬义词>>>褒义词) 1.什么是模块? 模块:一系列功能的结合体 2.为什么要用模块? 为了提升开发效率(站在巨人肩膀) 3.模块三种来源 1.内置的(python解释器自带能够直接导入使用) 2.第三方的(别人写好的发布在网上的 需要先下载后使用) 3.自定义的(自己写的) 4.模块的四种表现形式 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包(文件夹) # 包其实就是多个py文件(模块)的集合 包里面通常会含有一个__init__.py文件 4 使用C编写并链接到python解释器的内置模块 """ 学习完模块之后 以后我在编写大型项目的时候 遇到一些比较复杂的功能可以先考虑是否有相应的模块可以调用 """

image

import句式

# 在学习模块的时候 一定要区分谁是导入文件谁是模块文件 import md # 导入py文件模块 文件后缀一定不要加 """ 多次导入相同模块 只会执行一次 首次导入md模块发生的事情 1.运行导入文件(import句式.py)产生该文件的全局名称空间 2.运行md.py文件 3.产生md.py全局名称空间 运行md文件内代码 将产生的名字全部存档于md.py名称空间 4.在导入文件名称空间产生一个md的名字指向md.py全局名称空间 import句式导入模块之后 通过模块名点的方式就可以使用到模块中所有的名字 并且肯定不会产生冲突(指名道姓) """ # money = 999 # md.change() # print(money) # print(md.money)

image

from...import...句式

from md import money,read1,change """ from...import...多次导入也只会导入一次 1.先产生执行文件的全局名称空间 2.执行模块文件 产生模块的全局名称空间 3.将模块中执行之后产生的名字全部存档于模块名称空间中 4.在执行文件中有一个money执行模块名称空间中money指向的值 from...import...指名道姓的导入某个名字 在使用的时候直接写名字即可 但是当当前名称空间有相同名字的时候 就会产生冲突 使用的就变成了当前名称空间 """ # money = 999 # print(money) money = 999 # def read1(): # print('董小姐') # read1() change() print(money)

image

导入模块扩展用法

1.起别名 既可以给模块名起别名也可以给模块中某个名字起别名 import mdddddddd as m from mddddddd import name as n 2.连续导入 import 模块名1,模块名2 # 可以连续导入多个模块 但是只有当多个模块功能相似或者属于同一个系列 # 如果功能不同并且不属于一个系列 那么推荐分行导入 import 模块名1 import 模块名2 from 模块名1 import 名字1,名字2,名字3 3.通用导入 from md import * # 将模块中所有的名字全部导入(*表示所有) print(money) print(read1) print(read2) print(change) __all__ = ['money','read1'] # 在被导入的模块文件中可以使用__all__指定可以被导入使用的名字

image

判断文件类型

# 判断py文件是作为模块文件还是执行文件 __name__当文件是执行文件的时候会返回__main__ 如果文件是被当做模块导入则返回文件名(模块名) if __name__ == '__main__': read1() """在pycharm中可以直接敲 main按tab键即可自动补全if判断"""

image

循环导入

"""以后我们在导入模块的时候如果出现了循环导入的情况 说明你程序设计的不合理""" # 记住在以后的编程生涯中不允许出现循环导入的现象!!! 一错再错 1.调换顺序 将彼此导入的句式放在代码的最后 2.函数形式 将导入的句式放入函数体代码 等待所有的名字加载完毕之后再调用

image

模块导入的顺序

""" 1.先从内存中查找 2.再去内置模块中查找 3.最后去sys.path系统路径查找(自定义模块) 如果都没有查找到则报错 """ # 以后在给py文件命名的时候尽量不要与内置模块名冲突 import sys print(sys.path) # 结果中第一个元素永远是当前执行文件所在的路径 当某个自定义模块查找不到的时候解决方案 1.自己手动将该模块所在的路径添加到sys.path中 import sys sys.path.append(r'D:\py20\day18\aaa') 2.from...import...句式 from 文件夹名称.文件夹名称 import 模块名 from 文件夹名称.模块名称 import 名字

image


__EOF__

本文作者祈安
本文链接https://www.cnblogs.com/jyc666/p/15593376.html
关于博主:没有收拾残局的能力,就别放纵善变的情绪
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   丶祈安  阅读(83)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
点击右上角即可分享
微信分享提示