【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 = 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++第二十四弹---从零开始模拟STL中的list(上)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、基本结构 2、基本函数实现 2.1、默认构造函数 2.2、尾插数据 3、迭代器的封装 3.1、迭代器的基本结构 3.2、迭代器重载函数的实现 4、迭…

数字逻辑电路交通信号灯控制器设计与multisim仿真

当今时代是一个自动化时代,交通灯控制等很多行业的设备都与计算机密切相关。因此,一个好的交通灯控制系统,将给道路拥挤、违章控制等方面给技术革新。随着大规模的集成电路及计算机技术的迅速发展,以及人工智能在控制技术方面的广泛运用,智能设备有了很大的发展,是现在科…

基于ssm的乡村振兴战略下海东地区农产品购销系统

一、系统架构 前端:vue | element-ui 后端:spring | springmvc | mybatis 环境:jdk1.8 | mysql | maven | nodejs 二、代码及数据库 三、功能介绍 01. web端-首页1 02. web端-首页2 03. web端-登录 04. web端…

【数学建模】MATLAB入门教程:插值与拟合(下)

前言 插值与拟合在数据处理和科学计算中扮演着非常重要的角色&#xff0c;它们用于估算未知数据点的值&#xff0c;帮助我们理解和预测数据趋势 一、一维插值 1、一维插值定义 已知n1个节点(,)(j0,1,...,n,其中互不相同&#xff0c;不妨设a<<...<b),求任一插值点(…

网络安全领域六大顶级会议介绍:含会议介绍、会议地址及会议时间和截稿日期

**引言&#xff1a;**从事网络安全工作&#xff0c;以下六个顶会必须要知道&#xff0c;很多安全的前沿技术都会在如下会议中产生与公开&#xff0c;如下会议发表论文大部分可以公开下载。这些会议不仅是学术研究人员展示最新研究成果的平台&#xff0c;也是行业专家进行面对面…

chlarles抓包工具之---打断点

打断点的目的 通过打断点可以修改请求的数据或者响应&#xff0c;来测试各种场景 打断点流程 1、选中需要打断点的接口右键&#xff0c;选中Breakpoints 2、Proxy --> Breakpoint Setting 如果打断点一直进不去&#xff0c;把设置的query项清空

音频数据上的会话情感分析

情感分析&#xff0c;也被称为观点挖掘&#xff0c;是自然语言处理(NLP)中一个流行的任务,因为它有着广泛的工业应用。在专门将自然语言处理技术应用于文本数据的背景下,主要目标是训练出一个能够将给定文本分类到不同情感类别的模型。下图给出了情感分类器的高级概述。 例如,三…

【CTF Web】BUUCTF BUU LFI COURSE 1 Writeup(代码审计+PHP+文件包含漏洞)

BUU LFI COURSE 1 1 点击启动靶机。 解法 <?php /*** Created by PhpStorm.* User: jinzhao* Date: 2019/7/9* Time: 7:07 AM*/highlight_file(__FILE__);if(isset($_GET[file])) {$str $_GET[file];include $_GET[file]; }如果GET请求中接收到file参数&#xff0c;就会…

刷新方盒子最快10万销量纪录 捷途旅行者何以颠覆越野市场?

近年”方盒子“产品迅速崛起&#xff0c;在新一轮的市场角逐中&#xff0c;率先突围的并非传统豪强&#xff0c;而是首次进军越野市场的捷途汽车。作为“燃油车&#xff0c;”捷途旅行者&#xff0c;在面对纯电、混动等产品的强势围剿下&#xff0c;仅用时9个月便成为细分市场销…

Linux ip命令常用操作

ip 命令来自 iproute2 软件包&#xff0c;在 CentOS 7 中默认已安装&#xff08;yum install -y iproute&#xff09;。 iproute2 软件包提供了很多命令&#xff08;rpm -ql iproute |grep bin&#xff09;&#xff0c;如 ss 命令、bridge&#xff0c;这些命令可以完全替代 if…

Vue3 【实战】封装 useLocation

技术要点 通过 Vue3 的组合式API 仿写 react 中的 hook 代码实现 封装 hooks/useLocation.js import { reactive, onMounted, toRefs } from vue// 模拟异步获取 function getLocation(fail) {return new Promise((resolve) > {setTimeout(() > {if (fail) {// 模拟失败…

Vue3 使用audio播放语音+监听播放语音完成事件

需求&#xff1a;输入一段文字&#xff0c;点击语音框&#xff0c;将本地语音&#xff08;提前准备好的&#xff09; 播放出来 播放中效果 代码 <div class"listConAI" click"handleOpenSpeech" ><imgsrc"../../../../assets/images/blueo…

剪画小程序:自媒体必备神器:【视频翻译】自动识别语言、翻译、配音,让外语视频秒变母语!

Hello&#xff0c;大家好呀&#xff01;我是不会画画的小画~ 今天给大家带来一款敲实用的视频翻译工具一一 小程序【剪画】 我们有很小伙伴在学习他国语言时&#xff0c;最大的障碍就是语言的问题了&#xff0c;想要 理解其中的内容&#xff0c;在这之前要下很大的功夫去掌握…

Rust基础学习-Rust中的文件操作

文件结构 在Rust中&#xff0c;std::fs::File 结构体代表一个文件。它允许我们对文件执行读/写操作。文件 I/O 是通过提供与文件系统交互的功能的 std::fs 模块执行的。 File 结构体中的所有方法都返回std::io::Result的变体&#xff0c;或者简单地是 Result 枚举。这里会涉及…

猫熊超市管理系统

import java.util.Scanner;//增加商品类 //此类用来录入一个商品的所有属性&#xff0c;并作为结果对其返回 public class Add {public Goods add1() {Scanner scanner new Scanner(System.in);System.out.println("请输入商品名称");String name scanner.next();S…

android自定义系统广播 系统与app进行通信

使用场景 我们的定制软件需要在按下电源键时监听并播报软件信息&#xff0c;像我们之前做法是监听屏幕的开关 android.intent.action.SCREEN_ON 广播可以达到要求&#xff0c;但是定制系统CPU熄屏不休眠导致这个广播被拦截收不到了&#xff0c;所以我们就追踪到系统代码的Key…

resultType的类型错误

resultType的类型错误&#xff0c;不能是List而应该是对应的返回Bean对象的类型&#xff0c;VO 这里是引用 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: Error querying database. Cause: java.lang…

木叶飞舞之【机器人ROS2】篇章_第四节、ROS2非常简单的传参方式--利用NodeOptions和get_parameter方法

系列文章目录 木叶飞舞之【机器人ROS2】篇章_第一节、ROS2 humble及cartorgrapher安装 木叶飞舞之【机器人ROS2】篇章_第二节、turtlebot3安装 木叶飞舞之【机器人ROS2】篇章_第三节、给turtlebot3安装realsense深度相机 木叶飞舞之【机器人ROS2】篇章_第四节、ROS2非常简单的…

halcon 算子 get_grayval_interpolated BiCubic 插值验证

测试发现 halcon BiCubic基函数中的a-1.0

自适应手机端+电脑端企业建站网站系统源码 760多建站模版任意选择 带完整的安装代码包以及搭建教程

系统概述 随着互联网的迅猛发展&#xff0c;企业对于网站的需求日益增长。传统的建站方式往往存在着成本高、周期长、维护困难等问题&#xff0c;难以适应快速变化的市场环境。为了解决这些难题&#xff0c;我们的开发团队深入研究企业建站的痛点和需求&#xff0c;结合先进的…