当前位置: 首页 > news >正文

模块 包 循环导入 系统

模块:

把功能相近的函数或者类放到一个文件中

好处:

提高代码的可复用,可维护性。

导入模块:

  1. import 模块名
list=[1,2] #导入模块 import calculate sum=calculate.add(*list) print(sum)

模块名.变量 模块名.函数 模块名.类

2.from 模块名 import 变量 | 函数 | 类,在代码中直接使用变量,函数,类

from calculate import add,number,Calculate list=[1,2] result=add(*list) print(result) sum=result+number print(sum) c=Calculate() c.test()

3.from 模块名 import *,导入模块中的所有的内容

但是如果想限制获取的内容,可以在导入的模块中使用__all__=['add','number']

__all__=['add','number','Calculate']

包:

一个包中可以存放多个模块
文件夹:非py文件 包:py文件

项目 > 包 > 模块 >类 > 函数 > 变量

from 包 import 模块

form 包.模块 import 类 | 方法 | 变量(推荐)

form 包.模块 import * __all__=[]

当创建package时,会自动创建一个__init__

作用:

  • 当导入包的时候,默认调用__init__.py文件

import 包

  • 当导入包的时候,把一些初始化的函数,变量,类,定义在__init__.py文件中
  • 此文件中的函数,变量等的访问,只需要通过包名.函数

from 包.模块 import 类

  • form 包 import * 表示该包中内容是不能访问,就需要在__init__.py文件中定义__all__=[可以通过*访问的]

循环导入:

由于架构不当,可能会出现模块之间的相互导入

解决办法:将导入的代码放到函数里面,或者把导入语句放到模块的最后面

系统:

sys:

sys.path sys.version sys.argv

import sys print(sys.path) print(sys.argv) print(sys.version)

time和datetime:

import time t=time.time() print(t)#1782704820.9784555 #将时间戳转成字符串 s=time.ctime(t) print(s)#Mon Jun 29 10:53:54 2026 #转化成元组的形式 t=time.localtime(t) print(t.tm_year)#2026 print(t)#time.struct_time(tm_year=2026, tm_mon=6, tm_mday=29, tm_hour=11, tm_min=49, tm_sec=45, tm_wday=0, tm_yday=180, tm_isdst=0) #将元组的转化成时间戳 tt=time.mktime(t) print(tt)#1782704985.0 #将元组的时间转化成字符串 s=time.strftime("%Y-%m-%d %H:%M:%S") print(s)#2026-06-29 10:58:52
import datetime print(datetime.date.today())#2026-06-29 now=datetime.datetime.now()#当前的时间 print(now)#2026-06-29 14:53:49.616129 #时间差 timedel=datetime.timedelta(days=3,hours=23) result=now-timedel print(result)#2026-06-26 14:53:49.616129

random:

import random ran=random.random()#0-1之间的随机小数 print(ran) ran1=random.randrange(1,10,2)#randrange(start,stop,step) print(ran1)#1,3,5,7,9 ran2=random.randint(1,10)#包含1和10 print(ran2) list=['zz','hskh','hid','ha','ahl'] ran3=random.choice(list) print(ran3) random.shuffle(list)#打乱顺序 print(list)#['ahl', 'zz', 'hid', 'hskh', 'ha']

例子:随机生成验证码

import random def func(): code='' for i in range(4): ran1=str(random.randint(0,9)) ran2=chr(random.randint(65,90)) ran3 = chr(random.randint(97,122)) r=random.choice([ran1,ran2,ran3]) code+=r return code code=func() print(code)

hashlib:

解码和编码

import hashlib password='123456' list1=[] sha256=hashlib.sha256(password.encode('utf-8'))#生成的是二进制 list1.append(sha256.hexdigest())#把哈希运算后的二进制摘要,转换成 16 进制字符串 psw=input("请输入密码") sha256=hashlib.sha256(psw.encode('utf-8')) psw=sha256.hexdigest() for i in list1: if psw==i: print("登录成功")

第三方:pillow

先导入这个包,然后可以使用这个包里面的所有方法和属性

http://www.jsqmd.com/news/1098934/

相关文章:

  • 3PEAK思瑞浦 TPA133A2-VS1R-S MSOP8 电流信号检测放大器
  • AI4C编译调优的终极技巧:提升程序性能30%的秘密
  • NCM音乐格式转换终极指南:5分钟解锁你的音乐收藏
  • Mineradio开源音乐播放器下载安装介绍(附下载链接)
  • 为什么好人没好报?你可能误解了“诚信”
  • 【会议征稿通知 | 西藏大学主办 | JPCS出版 | EI 、Scopus稳定检索】2026年水电系统与能源工程学术会议 (HSEE 2026)
  • 智慧矿场施工状态监测 推土机识别 装载机数据集 挖掘机等工程机械数据集第10096期
  • 实测有效|OpenClaw 闪退卡顿、网关异常根治教程
  • lac_agent自愈链路上篇——crontab守护的那些坑与健康检查实战
  • 计算机毕业设计之基于实训室管理平台的设计与实现
  • 逻辑回归(Logistic Regression)培训课件
  • .NET 8加持:C#上位机调用国产PLC运动控制指令实战
  • 医疗NLP落地实录:从病历结构化到药物发现,三大场景技术选型与合规避坑指南
  • YOLOv8一站式实战:图像分类、目标检测与实例分割全解析
  • 前端入门必学:用CSS实现三角形的常用三种方式
  • Airbnb 亿级流量的限流架构
  • 海上船舶识别数据集 渔船监测 货船识别 游艇数据集 油轮识别图像数据集 船舶类分类和测数据集 数据集第10163期 数字化智能化识别数据集
  • 【学习记录】Week3(三):灵魂注入——x86/x64 手写基础 Shellcode 实战
  • 界面控件DevExpress WPF v26.1新版系统配置要求|按需对应
  • 北邮 AI无线通信 | 基于KNN的调制模式识别(2)依托于MatlabR2023b对调制信号训练数据生成部分的仿真设计(data_generation_module)
  • 如何用ShaderGlass为Windows桌面添加实时GPU着色器效果
  • 移动端 App 测试入门(3)----Charles使用
  • Claude Code深度体验:Anthropic的编程Agent到底有多强?
  • 【小白也能轻松玩转龙虾】虾壳云一键部署极简流程,低配主机流畅运行 OpenClaw v2.7.9(附最新安装包)
  • 虚拟线程落地实战:从原理到生产级最佳实践
  • 企业 AI 落地六大深坑:预算超支、系统闲置的根因与工程化破局路径
  • 测量显微镜在半导体前道检测中的应用有哪些?
  • 告别卡顿!Performance-Fish让你的《环世界》流畅如鱼得水
  • 基于sigrity的TDR/TDT仿真设计
  • Typora插件只读模式下代码块粘贴的技术挑战与精细化权限控制方案