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

news2024/12/23 19:40:36

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
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 = 0
    for number in numbers:
        total += number
    print(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

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

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

相关文章

windows RNDIS开发-概念

远程 NDIS (RNDIS) 是一种独立于总线的类,适用于动态 即插即用 (PnP) 总线(例如 USB、1394、蓝牙和 InfiniBand)上的以太网 (802.3) 网络设备。 远程 NDIS 通过抽象控制和数据通道在主计算机与远程 NDIS 设备之间定义与总线无关的消息协议。 …

实践记录-docker-step6-7/10-参考docker官网步骤操作记录-绑定挂载-多容器

参考来源: (应用的容器化实践)docker官方入门指南 https://docs.docker.com/get-started/ 本指南包含有关如何开始使用 Docker 的分步说明。本指南介绍如何: 将映像作为容器生成并运行。 使用 Docker Hub 共享映像。 使用带有数据…

Zero++原理

1. Weights在AllGather中的量化;(计算时间换网络通信延迟) Zero3的Weights分片在各个rank中;在forward和backward中,用到整层weights时都要所有rank进行AllGather; 使用FP16-->INT8量化,减少…

win+mac通用的SpringBoot+H2数据库集成过程。

有小部分大学的小部分老师多毛病,喜欢用些晦涩难搞的数据库来折腾学生,我不理解,但大受震撼。按我的理解,这种数据库看着好像本地快速测试代码很舒服,但依赖和数据库限制的很死板,对不上就是用不了&#xf…

Vitis HLS 学习笔记--static RAM/ROM

目录 1. 简介 2. static RAM 2.1 无 reset 的情形 2.2 含 reset 的情形 3. static ROM 4. 总结 1. 简介 本文仍然是讨论阵列的初始化与复位问题,区别于《Vitis HLS 学习笔记--global_array_RAM初始化及复位-CSDN博客》,本文讨论的对象是静态阵列&…

微服务第一轮

课程文档 目录 一、业务流程 1、登录 Controller中的接口: Service中的实现impl: Service中的实现impl所继承的接口IService(各种方法): VO: DTO: 2、搜索商品 ​Controller中的接口&a…

期望24K,商汤科技golang开发 社招一二三 + hr 面

商汤科技对数据库和中间件相关的东西问的比其他的大厂要少很多,可能他们更多是和算法相关,没有什么高并发的场景。总体感觉对技术的要求不是特别高。当时问了他们主管,我面试的部门的工作是主要去实现他们算法部门研究的算法,感觉…

CSS函数:fit-content与matrix的使用

网格函数 fit-content()属于网格函数,除此之外的网格函数还有:CSS函数: 实现数据限阈的数字函数。顾名思义,这三个函数只能在网格布局中使用。fit-content()函数主要是用于给定布局可用大小,适应内容,其功…

【微信小程序】页面导航

声明式导航 导航到 tabbar 页 tabBar页面指的是被配置为tabBar的页面。 在使用<navigator>组件跳转到指定的tabBar页面时&#xff0c;需要指定url属性和open-type属性&#xff0c;其中&#xff1a; url 表示要跳转的页面的地址&#xff0c;必须以/开头open-type表示跳…

【Vue】路由介绍

一、引入 思考 单页面应用程序&#xff0c;之所以开发效率高&#xff0c;性能好&#xff0c;用户体验好 最大的原因就是&#xff1a;页面按需更新 比如当点击【发现音乐】和【关注】时&#xff0c;只是更新下面部分内容&#xff0c;对于头部是不更新的 要按需更新&#xff…

企业微信hook接口协议,ipad协议http,内部联系人备注修改

内部联系人备注修改 参数名必选类型说明uuid是String每个实例的唯一标识&#xff0c;根据uuid操作具体企业微信 请求示例 {"uuid":"1688855749266556","vid":1688856554448765,"remark":"备注啦啦啦22222","des&quo…

Pycharm SSH远程连接时出现报错,测试 SFTP 连接,连接到 ‘connect.westb.seetacloud.com‘ 失败

问题由来 很离谱&#xff01;今天本来打算租借AutoDL的显卡完成一项深度学习的任务&#xff0c;很离谱的是同步文件夹的时候报了标题说的错。 就很莫名奇妙&#xff0c;一天都在网上找解决办法&#xff0c;结果都不对头。 其他报错 最后摸索着&#xff0c;在使用pycharm远程登…

[数据集][目标检测]手枪检测数据集VOC+YOLO格式3000张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;3000 标注数量(xml文件个数)&#xff1a;3000 标注数量(txt文件个数)&#xff1a;3000 标注…

数据流通与智能家居的未来

在科技飞速发展的今天&#xff0c;智能家居逐渐融入我们的日常生活&#xff0c;改变了传统的居住方式。智能生态网络&#xff08;IEN&#xff09;作为智能家居的核心&#xff0c;集成了家庭内的各种智能设备和传感器&#xff0c;实现了对家庭环境的智能化管理。而数据要素流通则…

SpringCloud 服务调用 spring-cloud-starter-openfeign

spring-cloud-starter-openfeign 是 Spring Cloud 中的一个组件&#xff0c;用于在微服务架构中声明式地调用其他服务。它基于 Netflix 的 Feign 客户端进行了封装和增强&#xff0c;使其与 Spring Cloud 生态更好地集成。 1. Feign Feign 是一个声明式的 Web Service 客户端…

绿联Nas docker 中 redis 老访问失败的排查

部署了一些服务&#xff0c;老隔3-5 天其他服务就联不上 redis 了&#xff0c;未确定具体原因&#xff0c;只记录观察到的现象 宿主机访问 只有 ipv6 绑定了&#xff0c;ipv4 绑定挂掉了 其他容器访问 也无法访问成功 当重启容器后&#xff1a; 一切又恢复正常。 可能的解…

使用 Django 和 MQTT 构建实时数据传输应用

文章目录 什么是 MQTT&#xff1f;Django 中的 MQTT结论 在现代的 Web 应用程序开发中&#xff0c;实时数据传输变得越来越重要。MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级的发布/订阅消息传输协议&#xff0c;而 Django 是一个流行的 Pyt…

【最新鸿蒙应用开发】——Want信息载体

信息传递载体Want 1、概述 上一章节我们学习了UIAbility组件 【最新鸿蒙应用开发】——一篇搞懂什么是UIAbility-CSDN博客 &#xff0c;其中组件间的交互传递信息的媒介就是Want&#xff0c;本章节我们来更加深入学习Want的相关知识。 Want是一种对象&#xff0c;用于在应用组…

实践记录-docker-step1~5/10-参考docker官网步骤操作记录

参考来源&#xff1a; &#xff08;应用的容器化实践&#xff09;docker官方入门指南 https://docs.docker.com/get-started/ 本指南包含有关如何开始使用 Docker 的分步说明。本指南介绍如何&#xff1a; 将映像作为容器生成并运行。 使用 Docker Hub 共享映像。 使用带有数据…

OpenCv之简单的人脸识别项目(属性判断页面)

人脸识别 准备十二、属性判断页面1.导入所需的包2.设置窗口2.1定义窗口外观和大小2.2设置窗口背景2.2.1设置背景图片2.2.2创建label控件 3.定义预测性别脚本4.定义预测年龄脚本5.定义关闭窗口的函数6.按钮设计6.1预测性别按钮6.2预测年龄按钮6.3返回按钮 7.定义关键函数8.属性判…