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

python - 模块

root@learning ~]# cat gcdfunction.py   #写一个模块,并调用此模块
def gcd(n1,n2):  #之前用过的求最大公约数的代码gcd = 1k = 2while k<= n1 and k<=n2:if n1%k == 0 and n2 % k == 0:gcd = kk = k + 1return gcd
[root@learning ~]# cat module.py  #完整代码
from gcdfunction import gcd   #调用模块n1 = eval(input("enter a number:"))
n2 = eval(input("enter a number:"))
print ("the greatest common divisor for",n1, 'and',n2,"is",gcd(n1,n2))
[root@learning ~]# python3.11 module.py
enter a number:66
enter a number:99
the greatest common divisor for 66 and 99 is 33

参考信息:
在Linux中,Python会在一系列目录中查找模块。这些目录包括:

  1. 当前工作目录:Python首先在运行脚本的当前工作目录中搜索模块。

  2. 环境变量PYTHONPATH中定义的目录:PYTHONPATH是一个包含一个或多个目录路径的环境变量,Python会在这些目录中搜索模块。

  3. Python的默认安装路径:Python会在默认安装路径中搜索模块,这个路径通常是/usr/lib/pythonX.Y(其中X和Y代表Python的主版 本和次版本号)。

当然,你也可以通过在代码中使用sys.path.append(path)来添加其他搜索路径。

至于第二个问题,任意目录下的模块并不一定都可以被调用。在使用import语句调用模块时,Python只会搜索特定目录中的模块。如果你把自己编写的模块放在了Python搜索路径之外的目录中,你需要通过修改sys.path或设置PYTHONPATH来将该目录添加到Python的搜索路径中,这样才能顺利地调用该模块。

[root@learning ~]# cat timelogfunction.py #一个使用装饰器,记录运行时间,和输出日志的代码,
import time
import logging
logging.basicConfig(filename = "/tmp/123.log",level = logging.INFO)def log(f):   #可以被调用的log模块def wrapper():logging.info("%s is running" % f.__name__)return f()return wrapperdef print_run_time(f):  #可以被调用的运行时间模块def wrapper(*args, **kwargs):local_time = time.time()f(*args, **kwargs)print('hanshu[%s]zhixingshijian is %.2f miao' % (f.__name__, time.time() - local_time))#f(*args, **kwargs)return wrapper#@print_run_time
def test():   #可以忽略time.sleep(0.5)print('123')#test()
[root@learning ~]# cat test3.py   #主程序
import timelogfunction   #调用上面写的模块
import time
@timelogfunction.print_run_time
def f():print("hello, test script")s = 1for i in range (1, 100):s += iprint(s)time.sleep(0.2)f()
[root@learning ~]# python3.11 test3.py   #运行结果 
hello, test script
4951
hanshu[f]zhixingshijian is 0.20 miao
http://www.lryc.cn/news/301306.html

相关文章:

  • 【Web】CTFSHOW java刷题记录(全)
  • 全球付汇业务的流程
  • ubuntu22.04@laptop OpenCV Get Started: 012_mouse_and_trackbar
  • 信息安全性测试
  • [HTML]Web前端开发技术26(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页
  • 【Java】文件操作与IO
  • 开关电源电路主要元器件基础知识详解
  • - 项目落地 - 《选择项目工具的方法论》
  • 美国突然致敬中本聪
  • 精品springboot基于大数据的电脑主机硬件选购助手-可视化大屏
  • 全量和已占用字符集 、字符串统计
  • 什么是智慧公厕,智慧公厕有哪些功能
  • 给定n个结点m条边的简单无向图,判断该图是否存在鱼形状的子图:有一个环,其中有一个结点有另外两条边,连向不在环内的两个结点。若有,输出子图的连边
  • 深入理解lambda表达式
  • 删除 Windows 设备和驱动器中的 WPS网盘、百度网盘等快捷图标
  • 【深度学习:DICOM 注释工具】在 DICOM 注释工具中寻找的 7 个功能
  • Spring Boot与Kafka集成教程
  • 基于飞腾ARM+FPGA国产化计算模块联合解决方案
  • 关于DVWA靶场Could not connect to the database service的几种解决办法
  • 已解决ModuleNotFoundError: No module named ‘paddle‘异常的正确解决方法,亲测有效!!!
  • 并发编程之深入理解JVM并发三大特性
  • helm部署gitlab-runner问题解决
  • [嵌入式系统-28]:开源的虚拟机监视器和仿真器:QEMU(Quick EMUlator)与VirtualBox、VMware Workstation的比较
  • 计算机组成原理:存储系统【三】
  • 学习Android的第十三天
  • 【开源】SpringBoot框架开发学校热点新闻推送系统
  • 代码随想录刷题笔记 DAY 28 | 复原 IP 地址 No.93 | 子集 No.78 | 子集 II No.90
  • LeetCode LCR 085. 括号生成
  • django定时任务(django-crontab)
  • 【教3妹学编程-算法题】输入单词需要的最少按键次数 II