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

【Python系列】Python 方法变量参数详解

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
    • 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 1. 位置参数(Positional Arguments)
    • 2. 关键字参数(Keyword Arguments)
    • 3. 默认参数(Default Arguments)
    • 4. 可变位置参数(Variable Positional Arguments)
    • 5. 可变关键字参数(Variable Keyword Arguments)
    • 6. 参数组合使用
    • 7. 参数解包(Argument Unpacking)
    • 8. 参数的注解(Parameter Annotations)
    • 9. `*`操作符
    • 10. `**`操作符
    • 11. 参数的命名空间
    • 12. 参数的作用域
    • 结论

在 Python 中,方法的参数是定义方法时定义的变量,它们用于接收调用方法时传递的数据。Python 提供了多种类型的参数,使得方法定义非常灵活,能够满足不同的编程需求。以下是 Python 中常见的几种方法参数类型及其详细说明。
在这里插入图片描述

1. 位置参数(Positional Arguments)

位置参数是最基本的参数类型,它要求在调用方法时按照参数定义的顺序传递相应的值。

def greet(name, message):print(f"Hello, {name}. {message}")
greet("Alice", "Nice to meet you!")

2. 关键字参数(Keyword Arguments)

关键字参数允许在调用方法时不必考虑参数的顺序,只需指定参数名即可。

def greet(message, name):print(f"Hello, {name}. {message}")
greet(name="Bob", message="How are you?")

3. 默认参数(Default Arguments)

默认参数允许为参数提供一个默认值。如果在调用方法时没有为该参数提供值,则使用默认值。

def greet(name, message="Hello"):print(f"{name}, {message}")
greet("Charlie")

4. 可变位置参数(Variable Positional Arguments)

可变位置参数允许传递任意数量的位置参数,这些参数被收集到一个元组中。

def sum_numbers(*numbers):total = 0for number in numbers:total += numberprint(f"The sum is: {total}")
sum_numbers(1, 2, 3, 4)

5. 可变关键字参数(Variable Keyword Arguments)

可变关键字参数允许传递任意数量的关键字参数,这些参数被收集到一个字典中。

def print_info(**info):for key, value in info.items():print(f"{key}: {value}")
print_info(name="Dave", age=25, job="Engineer")

6. 参数组合使用

Python 允许在同一个方法中组合使用不同类型的参数。

def func(a, b=2, *args, **kwargs):print(a, b, args, kwargs)
func(1, 3, 4, 5, name="Eve", job="Doctor")

7. 参数解包(Argument Unpacking)

参数解包允许在调用方法时,将序列中的元素解包为位置参数,将字典中的键值对解包为关键字参数。

args = [1, 2, 3]
kwargs = {'name': 'Frank', 'job': 'Artist'}
func(*args, **kwargs)

8. 参数的注解(Parameter Annotations)

Python 3 支持参数注解,允许为函数的参数指定类型。

def greet(name: str, message: str = "Hello") -> None:print(f"{name}, {message}")

9. *操作符

*操作符用于接收任意数量的位置参数,通常用于实现可变参数列表。

def max_of(*args):return max(args)
print(max_of(1, 2, 3, 4))

在这里插入图片描述

10. **操作符

**操作符用于接收任意数量的关键字参数,通常用于实现可变关键字参数列表。

def print_kwargs(**kwargs):for key, value in kwargs.items():print(f"{key}: {value}")
print_kwargs(name="Grace", age=30)

11. 参数的命名空间

在 Python 中,参数实际上位于它们自己的命名空间中。这意味着它们不会与全局或局部变量冲突。

12. 参数的作用域

参数的作用域仅限于函数内部,它们在函数调用时被创建,并在函数执行完毕后被销毁。

结论

Python 中的方法参数非常灵活,支持多种参数类型,使得函数的定义和使用非常灵活和强大。理解这些参数类型及其用法对于编写高效、可读性强的 Python 代码至关重要。通过合理地使用这些参数,可以创建出功能强大且易于维护的程序。

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

相关文章:

【Python系列】Python 方法变量参数详解

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

生命在于学习——Python人工智能原理(3.2)

三、深度学习 (二)人工神经网络 人工神经网络是模仿人类大脑神经系统工作原理所创建的数学模型,有并行的分布处理能力、高容错性和自我学习等特征。 1、感知器 感知器由Frank Roseblatt于1957年提出,是一种广泛使用的线性分类…...

JAVA面试八股文----Mybatis

1、Mybatis 1.1#{}和${}的区别是什么? Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值; Mybatis在处理 0 时,就是把 0时,就是把 0时,就是把{}替换成变量的值。 有了#{}为什么还需要${}? #{}会被预编译处理,可以有效的防止SQL注…...

[论文笔记]MemGPT: Towards LLMs as Operating Systems

引言 今天介绍一篇论文MemGPT: Towards LLMs as Operating Systems。翻过过来就是把LLM看成操作系统。 大语言模型已经在人工智能领域引起了革命性的变革,但受到有限上下文窗口的限制,在扩展对话和文档分析等任务中的效用受到了阻碍。为了能够利用超出…...

Sentinel1.8.6更改配置同步到nacos(项目是Gateway)

本次修改的源码在:https://gitee.com/stonic-open-source/sentinel-parent 一 下载源码 地址:https://github.com/alibaba/Sentinel/releases/tag/1.8.6 二 导入idea,等待maven下载好各种依赖 三 打开sentile-dashboard这个模块&#xf…...

材料科学领域科技查新点提炼方法!---附案例

材料科学是研究材料的组织结构、性质、生产流程、使用效能及它们之间的相互关系的科学,集物理学、化学、冶金学等于一体。随着科技的发展,纳米技术和生物技术也广泛应用到该领域中。从材质上可以分为金属材料、无机非金属材料、有机高分子材料和复合材料…...

深入理解HTTP与TCP:应用层与传输层的区分

一、前言 在互联网协议栈中,应用层和传输层是两个重要的层级,分别承载了不同的功能。HTTP(HyperText Transfer Protocol)作为应用层协议,而TCP(Transmission Control Protocol)则是传输层协议&…...

Unity3D Delaunay德罗内三角算法详解

Unity3D是一款强大的游戏开发引擎,它提供了丰富的功能和工具,使开发者能够轻松创建出色的游戏和应用程序。其中,Delaunay德罗内三角算法是一种常用的计算几何算法,用于生成三角形网格,其在Unity3D中的应用也非常广泛。…...

JAVA小案例-输出100-150中能被3整除的数,每5个换行

JAVA小案例-输出100-150中能被3整除的数,每5个换行 代码如下: public class Continue {/*** continue练习,输出100-150中能被3整除的数,每5个换行* param args*/public static void main(String[] args) {int count 0;//计数器…...

论程序员的职业素养

文章目录 前言一、命名规范1. HTML命名规范2. CSS命名规范3. JavaScript命名规范4. 文件和文件夹命名规范5. 代码案例 二、代码注释规范1. 注释规范2. 案例代码HTMLCSS (styles/main.css)JavaScript (scripts/main.js) 三、代码逻辑规范1.逻辑规范2. 代码案例清晰的函数和模块化…...

前端canvas绘图,利用canvas在图片上面绘制标记以及给canvas添加点击事件。

前端canvas绘图&#xff0c;利用canvas在图片上面绘制标记以及给canvas添加点击事件。 需要实现的效果如下图: 首先需要一个承载的核心画布 <canvas id"canvas" width"800" height"600"></canvas>全部代码&#xff1a; <!DOCT…...

38、Flink 的 WindowAssigner 之 GlobalWindows 示例

1、注意 使用 GlobalWindows 需要自定义 Trigger&#xff0c;否则窗口中的数据不会被计算。 2、代码示例 import org.apache.flink.streaming.api.datastream.DataStreamSource; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org…...

同事仅靠着自己写的npm包跳槽去了大厂,羡慕了一整天

同事们之间总会悄悄聊一些话题&#xff0c;比如聊一些八卦啦&#xff0c;聊一些领导啦&#xff0c;也会偶尔说想跳槽&#xff0c;但这年头&#xff0c;跳槽多费劲啊&#xff0c;谁没事敢动。还别说&#xff0c;边上做了个同事&#xff0c;前两天还真要撤了&#xff0c;聊了半天…...

Yocto - bitbake任务中clean和cleanall的区别

在 BitBake 中&#xff0c;clean 和 cleanall 命令都用于删除构建工件&#xff0c;但它们的范围和执行的清理程度不同。 1. clean 命令&#xff1a; 目的&#xff1a;clean命令用于删除与特定任务或配方相关的临时构建文件和工件。 范围&#xff1a;它只清除指定任务或配方生…...

Spring 中如何控制 Bean 的加载顺序?

如果你脱口而出说添加 Order 注解或者是实现 Ordered 接口&#xff0c;那么恭喜&#xff0c;你掉坑了。 一 Order 注解和 Ordered 接口 在 Spring 框架中&#xff0c;Order 是一个非常实用的元注解&#xff0c;它位于 spring-core 包下&#xff0c;主要用于控制某些特定上下文…...

【学习笔记】Windows GDI绘图(十)Graphics详解(中)

文章目录 Graphics的方法AddMetafileComment添加注释BeginContainer和EndContainer新建、还原图形容器不指定指定源与目标矩形指定源与目标矩形 Clear清空并填充指定颜色CopyFromScreen截图CopyPixelOperation DrawImage绘制图像DrawImage的GraphicsDrawImageAbort回调ExcludeC…...

web学习笔记(六十二)

目录 1.键盘事件 2.KeepAlive 3.组件传值 3.1 兄弟组件传值 3.2 组件树传值 3.3 发布订阅者传值 1.键盘事件 keydown表示键盘事件&#xff0c;在不加修饰符的情况下&#xff0c;点击键盘上的任意位置都可以触发键盘事件&#xff0c; <template><div><!--…...

每天CTF小练一点--ctfshow年CTF

初一 题目&#xff1a; 2023是兔年&#xff0c;密码也是。聪明的小伙伴们&#xff0c;你能破解出下面的密码吗&#xff1f; 感谢大菜鸡师傅出题 flag格式是ctfshow{xxxxxx}.或许密码也有密码。 密文是&#xff1a; U2FsdGVkX1M7duRffUvQgJlESPfOTV2i4TJpc9YybgZ9ONmPk/RJje …...

Java Set接口 - TreeSet类

TreeSet 是 Java 集合框架中的一个类&#xff0c;它实现了 NavigableSet 接口&#xff0c;而 NavigableSet 是 SortedSet 接口的一个子接口。TreeSet 基于红黑树&#xff08;一种自平衡的二叉搜索树&#xff09;实现&#xff0c;因此它可以保证集合中的元素以升序排列。 以下是…...

css 理解了原理,绘制三角形就简单了

1.border-位置 注意&#xff1a;border-bottom/up/right/left 主要是以三角形的结构搭建而成&#xff0c;而border也是如此。而且从边框的外围开始计算像素尺寸。在理解了这一点之后&#xff0c;绘制三角形就简单多了。 1.transparent 注意&#xff1a;该属性主要是颜色透明…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​&#xff1a; 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​&#xff1a; // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...