Python 参数类型

news2024/10/5 22:25:10

一 理解Python中的Parameters & Arguments

Parameters:形参

Arguments:实参

二 Python的实参(Arguments)类型

实参类型总结
  • 位置参数(Positional Arguments)  :函数调用时通过入参的顺序来进行值传递
  • 关键字参数(Keyword Arguments):函数调用时通过形参的名称来指定值传递

三 Python的形参(Parameters)类型

形参类型总结

在Python中,函数形参主要分为以下几类:

1. 位置或关键字参数 (Positional-Or-Keyword Arguments):指的是在函数调用时可以按位置传入(通过实参的位置),也可以通过关键字参数的形式(通过实参的名称)传入的参数,这是最常见的参数类型。

2.仅限位置参数 (Position-Only Arguments):在函数调用时只能使用位置传递(按位置传入)的参数。在Python 3.8及更高版本中,可以使用 符号来定义仅限位置参数的函数,标记之前的参数是“仅限位置参数”。

def func(pos_only1, pos_only2, /, positional_or_keyword):
     pass

3. 仅限关键字参数 (Keyword-Only Arguments):在函数调用时只能使用关键字参数的形式(通过参数名传递)来指定。在Python 3.8及更高版本中,可以使用 符号来定义仅限关键字参数的函数,标记之后的参数是“仅限关键字参数”。

def func(pos_only1, pos_only2, *, key_only1, key_only2):
     pass

4. 可变参数(Variable-Length Arguments):这些参数允许在函数调用时传递可变数量的参数。可变参数分为两种:

  • *args(Var-positional 可变位置参数):使用星号(*)表示,可以接受任意数量的位置参数。这些参数将被收集到一个元组(tuple)中。例如:

  • **kwargs(Var-keyword 可变关键字参数):使用双星号(**)表示,可以接受任意数量的关键字参数。这些参数将被收集到一个字典(dict)中。例如:

四 总结

1. 形参出现在函数定义中,实参出现在函数调用中。
2. 实参有两种类型(位置实参和关键字实参),形参有五种类型(位置或关键字、仅限位置、仅限关键字、可变位置和可变关键字)
3. 位置参数也可以具有默认值,可以使用关键字指定。
4. 在函数定义中,位于之前的所有参数都是严格的位置参数(仅限位置)
5. 在函数定义中,位于 * 之后的所有参数都是严格的关键字参数(仅限关键字)
6. *args 保存任意数量剩余的位置实参。
7. **kwargs 保存任意数量剩余的关键字实参。
8. 在函数调用中,位置实参不能位于关键字实参之后
9. 在函数定义中,**kwargs 之后不能有其他参数。这是所有参数的结尾

参考资料:

1. https://pythonsimplified.com/python-parameters-and-arguments-demystified/

2. 腾讯元宝 (tencent.com)

3.智谱清言 (chatglm.cn)

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

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

相关文章

JAVA每日作业day6.25

ok了家人们今天我们学习了,接口这个知识,我们闲话少叙,一起看看吧。 一,接口 1.1 接口概述 接口是功能的集合。接口的内部主要就是定义方法,包含常量,抽象方法(JDK 7及以前)&#…

让我们聊聊网络安全中会涉及到的IP地址(IP协议)、MAC地址、路由、DNS协议(域名系统)、NAT技术(协议)、以太网帧、ARP协议

网络安全中会涉及到的IP地址(IP协议)、MAC地址、路由、DNS协议(域名系统)、NAT技术(协议)、以太网帧、ARP协议 一.IP地址(IP协议)1.IP地址(IP协议)的作用2.IP…

第一百二十六节 Java面向对象设计 - Java枚举类

Java面向对象设计 - Java枚举类 枚举类型的超类 编译枚举类型时,编译器会创建一个类。 枚举类型可以具有构造函数,字段和方法。枚举类型仅在编译器生成的代码中实例化。 每个枚举类型都隐式地扩展java.lang.Enum类。 Enum类中定义的所有方法都可以与…

SAP 初始化库存移动类型561501511区别简介

项目上线初始化库存经常会用到561这个移动类型,同时我们在平时测试的过程中也会用到会进行库存的初始化,用的比较多是就是561和501这两个移动类型,本文将测试移动类型561&501&511这三个移动类型,分析三者之间的区别&#…

【图像处理实战】去除光照不均(Python)

这篇文章主要是对参考文章里面实现一种小拓展: 可处理彩色图片(通过对 HSV 的 V 通道进行处理)本来想将嵌套循环改成矩阵运算的,但是太麻烦了,而且代码也不好理解,所以放弃了。 代码 import cv2 import …

一分钟彻底掌握Java多线程生产者与消费者模型

代码 package com.example.KFC; public class Cooker extends Thread { public void run() { while (true) { synchronized (Desk.lock) { if (Desk.maxCount 0) { break; } else { if (!Desk.flag) { System.out.println("Cooker makes a hamburger"); …

MIGO增强(扩展字段,屏幕增强字段,常规保存增强)

1.MIGO前台增强: 1.SE18找到增强点:MB_GOODSMOVEMENT 2.找到相应的BADI:右键创建实施 3.找到重写的方法 METHOD if_ex_mb_document_badi~mb_document_before_update.DATA:lv_stat TYPE c,lv_type TYPE bapi_mtype,lv_msg TYPE bapi_msg.DATA:lv_message TYPE string.IF sy-t…

Ubuntu24.04下安装docker,并pull ubuntu22.04,然后编译安装vpp

一、docker安装说明 解决官方源无法下载的问题 二、使用步骤 1.更新软件包索引 sudo apt update2.安装必要的软件包,以允许apt通过HTTPS使用仓库 sudo apt install apt-transport-https ca-certificates curl software-properties-common3.添加Docker的官方GPG…

Cobalt Strike DLL用于永恒之蓝注入

1、原因: 我们在对存在MS17010的漏洞主机进⾏DLL注⼊的时候,⼀般都是⽤的Meataploit的msf venom⽣成出来的,所以每次上线之 后基本都是要经过相对⽐较繁琐的操作之后转到Cobalt Strike去,这样就会显得⾮常⿇烦。所以可以使⽤metas…

服务器性能测试指南:从零到一的超详细规范!

引言: 对于一台服务器的性能测试是确保其能够提供稳定和高效的服务的关键步骤。本文将从零开始,一步一步地介绍如何进行一次完善的服务器性能测试,确保您能够最大程度地了解服务器的性能指标。 一、确定测试目标: 在开始测试之前…

Linux线程:基于环形队列RingQueue的生产消费者模型

目录 一、环形队列的概念及定义 二、POSIX信号量 三、RingQueue的实现方式 3.1RingQueue.hpp的构建 3.2Thread.hpp 3.3Main.cc主函数的编写 3.4Task.hpp function包装器的使用 一、环形队列的概念及定义 此处的环形队列并不是一个真正意义上的环,而是通过对容…

如何集成CppCheck到visual studio中

1.CPPCheck安装 在Cppcheck官方网站下载最新版本1.70,官网链接:http://cppcheck.sourceforge.net/ 安装Cppcheck 2.集成步骤 打开VS,菜单栏工具->外部工具->添加,按照下图设置,记得勾选“使用输出窗口” 2.…

AcWing算法基础课笔记——状态压缩DP:蒙德里安的梦想

状态压缩DP 状态是整数,但把它看成二进制数,二进制中每一位是0或1表示不同的情况。 蒙德里安的梦想 291. 蒙德里安的梦想 - AcWing题库 题目 求把 NM𝑁𝑀 的棋盘分割成若干个 1212 的长方形,有多少种方案。 例如…

算法训练营day19--530.二叉搜索树的最小绝对差+501.二叉搜索树中的众数+236. 二叉树的最近公共祖先

一、530.二叉搜索树的最小绝对差 题目链接:https://leetcode.cn/problems/minimum-absolute-difference-in-bst/ 文章讲解:https://programmercarl.com/0530.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E5%B0%8F%E7%BB%9D%E5%AF…

Lobe Chat openai claude

claude-3-5-sonnet-20240620 $ docker run -d -p 3210:3210 \-e OPENAI_API_KEYsk-xxxx \-e OPENAI_PROXY_URLhttps://api-proxy.com/v1 \-e ACCESS_CODElobe66 \--name lobe-chat \lobehub/lobe-chatDocker 部署 更新 docker ps CONTAINER ID IMAGE …

【Playwright+Python】手把手带你写一个自动化测试脚本

如何使用代理方式打开网页 在 playwright.chromium.launch() 中传入 proxy 参数即可,示例代码如下: 1、同步写法: from playwright.sync_api import sync_playwrightproxy {server: http:/127.0.0.1:8080}def run():with sync_playwright(…

18.枚举

学习知识:枚举类型、相关的使用方法 Main.java: public class Main {public static void main(String[] args) {myenum[] colorlist myenum.values();//获取枚举中所有对象的引用数组for (myenum one : colorlist){System.out.println(one.toString(…

fork 是一个创建新进程的系统调用

在计算机科学中,fork 是一个创建新进程的系统调用。具体来说,fork 调用会创建一个与当前进程几乎完全相同的副本,包括父进程的内存布局、环境变量、打开的文件描述符等。这个新的进程被称为子进程,而原始进程被称为父进程。 以下…

汇聚荣做拼多多电商怎么运营?

在探讨如何有效运营拼多多电商平台时,我们需要首先明确一个核心问题:如何在竞争激烈的市场中突出重围,吸引并留住消费者。接下来,我们将从五个方面深入剖析这一核心内容,确保每一步都精准有效,以白话文的形…

ATFX汇市:加拿大5月CPI数据来袭,USDCAD逼近关键点位

ATFX汇市:今日20:30,加拿大统计局将公布5月未季调CPI年率,前值为2.7%,预期值2.6%,预期将下降0.1个百分点;同一时间公布的还有加拿大5月核心CPI年率,前值为1.6%,低于2%的温和通胀标准…