python基本语法知识(四)——包和模块

news2024/10/7 9:25:04

模块

例子1:导入某个模块中的具体功能

# 只导入time模块中的sleep方法,可以直接使用sleep调用不用加time.
from time import sleep
print("hello")
sleep(500)
print("fine")

# 只导入time模块中的sleep方法,并给sleep起别名为sl
from time import sleep as sl
print("hello")
sl(500) # !!!
print("fine")

例子2:自定义模块

当自定义模块写了测试代码,在其他代码文件中导入该模块,也会调用该测试代码,即:

注意如下是两个个文件的代码

# my_moudle.py
def add(x, y):
    print(f"{x} + {y} = {x+y}")

add(8, 9)

# aa.py
import my_moudle
my_moudle.add(22, 12)

执行aa.py 输出:
8 + 9 = 17
22 + 12 = 34

如果不想执行 my_moudle.py 中的 add(8, 9),可修改代码:

# my_moudle.py
def add(x, y):
    print(f"{x} + {y} = {x+y}")

if __name__ == '__main__':
    add(8, 9)

__name__是每个py文件内置的变量,只有运行的py文件才会是__main__

例子3:__all__全局变量

# my_moudle.py
__all__ = ['add'] # 其他文件  以from my_moudle import * 导入,则只能用add函数
def add(x, y):
    print(f"{x} + {y} = {x+y}")

def sub(x, y):
    print(f"{x} - {y} = {x-y}")

python包

python包就是一个文件夹,里面是模块,即python文件,额外还有一个 __init__.py

创建python包方法

在这里插入图片描述

在这里插入图片描述

假设文件夹下有两个模块文件 my_moudle1.py 和 my_moudle2.py

# my_moudle1.py
def print1():
    print("模块1功能")

# my_moudle2.py
def print2():
    print("模块2功能")

在 aa.py 中使用

# 这样导入,调用函数要写包名.模块名.方法名
import my_package.my_moudle1
import my_package.my_moudle2

my_package.my_moudle1.print1()
my_package.my_moudle2.print2()

# 这样导入,调用函数要写模块名.方法名
from my_package import my_moudle1
from my_package import my_moudle2

my_moudle1.print1()
my_moudle2.print2()

# 这样导入,调用函数只要写方法名
from my_package.my_moudle1 import print1
from my_package.my_moudle2 import print2

print1()
print2()

列表的sort方法

即使用自己定义的比较函数来进行排序

my_list=[["a", 33], ["b", 55], ["c", 11]]

# 基于有名函数排序
# 表明按照element 的第二个元素进行排序
def choose_sort_key(element):
    return element[1]

# reverse=True 表明是降序排列
#my_list.sort(key = choose_sort_key, reverse=True)

# 基于lambda匿名函数来降序排序
my_list.sort(key=lambda element:element[1], reverse=True)

print(my_list)

输出结果:
[[‘b’, 55], [‘a’, 33], [‘c’, 11]]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/635414.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023/6/11

BigDecima BigDecima的作用 用于小数的精确计算用来表示很大的小数 创建对象 创建对象时要注意以下细节 BigDecimal的使用和BigInteger类似,唯一要注意的点是:在使用除法时,如果除不尽就要设置精确到几位,否则报错 使用除法时的几…

模拟实现qsort函数(采用冒泡的方式),超详细!!!

函数详解和使用 函数声明 void qsort (void* base, size_t num, size_t size,int (*cmp)(const void* e1,constvoid* e2)); 头文件 stdlib.h 参数 base-- 指向要排序的数组的第一个元素的指针。 num-- 由 base 指向的数组中元素的个数。 size-- 数组中每个元素的大小&a…

高精度电压源的应用场合有哪些

高精度电压源是一种能够提供恒定、稳定电压输出的设备,被广泛应用于各种领域。高精度电压源是现代电力、通信、控制等领域中重要的测试仪器之一,其主要功能是提供稳定可靠的直流或交流电源,并具有高精度和高分辨率的特点。在实际应用中&#…

kotlin 解决构造函数兼容性问题

data class Person(private val head: String,val hand: String ) {} val p Person("head", "hand")Log.d("Alex", "Person $p") 打印结果: 2023-06-11 22:30:54.764 21840-21840 Alex com.example…

智能diy官网小程序至尊版v1.0.73+微信前端

🎈 限时活动领体验会员:可下载程序网创项目短视频素材 🎈 🎉 有需要的朋友记得关赞评,文章底部来交流!!! 🎉 ✨ 源码介绍 1、h5万*能页增加跳转小程序组件 2、功能链接弹…

智能工具Cursor安装和使用

一、Cursor介绍 Cursor.so是一个软件开发工具,是一个集成了 GPT的直接可以访问的,优秀而强大的智能AI代码生成工具,使用GPT-3.5免费。 它可以快速编写、编辑和聊天关于你的代码。它支持多种编程语言,如Python、Java、JavaScript等…

BootStrap文档

Bootstrap概念 ​ 1. 概念: 一个前端开发的框架,Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript 的,它简洁灵活,使得 Web 开发更加快捷。 ​ 框架:一个半成品…

C++教程(06)——变量类型

C 变量类型 变量其实只不过是程序可操作的存储区的名称。C 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。 变量的名称可以由字母、数字和下划线字符组成。它必须以字母…

037_SS_SyncDiffusion: Coherent Montage via Synchronized Joint Diffusions

SyncDiffusion: Coherent Montage via Synchronized Joint Diffusions 1. Motivations & Arguments & Contributions 本文提出了一种即插即用的用Diffusion生成全景图的方法。 Diffusion模型通常只能生成固定大小的图像,为了生成分辨率比较高的全景图。现…

linux shell操作-基本脚本编写

文章目录 变量分支循环函数函数案例 变量 普通变量 声明变量,直接赋值,同python两边不能有空格‘’ 单引号表示纯字符“”双引号表示一个整体反引号表示操作命令末尾没有;号 # 直接赋值, namejack # 纯字符 pyCodeimport os\n…

Android进阶 四大组件的工作过程(一):Activity的工作过程

Android进阶 四大组件的工作过程(一):Activity的工作过程 导语 本系列文章主要是来介绍Android中四大组件的工作过程的,参照书籍为Android进阶解密,主要还是会涉及到源码的阅读。关于源码,大家可以到Andro…

Linux - 第25节 - Linux高级IO(三)

目录 1.Reactor模式 1.1.Reactor模式的定义 1.2.Reactor模式的角色构成 1.3.Reactor模式的工作流程 2.epoll ET服务器(Reactor模式) 2.1.epoll ET服务器源代码 2.2.epoll ET服务器源代码讲解 2.2.1.设计思路 2.2.2.Connection结构 2.2.3.TcpSe…

VMware Fusion网络配置 - 设置Nat静态IP

准备把主力机器从ThinkPad T460P替换到MacMini上, MacOS版本: 10.15.7 当前最新MacOS版本是13 于是面临一个问题, 很多最新的工程软件不支持我这IntelCPU的MacOS陈旧版本, 于是我准备装一个虚拟机, 把工程软件都安装到虚拟机里, 宿主机访问其中的服务, 这样还能继续保持我这…

从定义到实际应用,详解项目管理的基本概念与核心内容

项目管理是项目的管理者,在有限的资源约束下,运用系统的观点、方法和理论,对项目涉及的全部工作进行有效地管理。项目管理的内容包括项目范围管理,是为了实现项目的目标,对项目的工作内容进行控制的管理过程。它包括范…

mysql5安装【含mysql安装包】

mysql5安装【含mysql安装包】 安装包等资源安装流程 安装包等资源 安装包下载地址【CSDN免费】:https://download.csdn.net/download/qq_47168235/87881814 如果上面的个下载不了,就通过百度网盘吧 百度网盘连接:https://pan.baidu.com/s/1G…

碳排放预测模型 | Python实现基于CNN卷积神经网络的碳排放预测模型(预测未来发展趋势)

文章目录 效果一览文章概述研究内容环境准备源码设计学习总结参考资料效果一览 文章概述 碳排放预测模型 | Python实现基于CNN卷积神经网络的碳排放预测模型(预测未来发展趋势) 研究内容 这是数据集的链接:https://github.com/owid/co2-data/blob/master/owid-co2-data.csv …

zabbix之ODBC监控方式

如有错误,敬请谅解! 此文章仅为本人学习笔记,仅供参考,如有冒犯,请联系作者删除!! 15.1 概述 ODBC监控对应于Zabbix前端中的 数据库监视器 监控项类型。 ODBC是C语言编写的中间件API&#xf…

uniapp 使用组件 uni-list 实现聊天列表功能

如何使用 uniapp 的组件实现聊天列表的功能呢,翻阅了半天文档,终于找到一个实用的方法,下面是具体的步骤 1、首先需要下载对应的插件 去uniapp的官方文档进行下载(uni-ui - DCloud 插件市场),这里直接下载…

机器学习 day17( Tensorflow和Numpy中的数据形式 )

Numpy和Tensorflow NumPy (Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。TensorFlow是Google开源的第二代用于数字计算的软件库。它是基于数据流图的处理框架,…

使用Docker-Compose对Docker容器集群快速编排

目录 一、Docker-Compose1、Docker-Compose使用场景2、Docker-Compose简介3、Docker-Compose安装部署4、YAML 文件格式及编写注意事项5、Docker Compose配置常用字段6、Docker Compose 常用命令7、Docker Compose 文件结构8、docker Compose撰写nginx 镜像9、docker Compose撰写…