Python传递参数的多种方式(小结)

一 位置传递

没什么好过多讲解.

# 位置传递实例:
def fun1(a,b,c):
  return a+b+c

print(fun1(1,2,3))

输出:

6

二 关键字传递

更具每个参数的名字写入函数参数

 # 关键字传递
 def fun2(a,b,c):
  return a+b+c

print(fun2(1,c=3,b=2))

输出:

6

三 参数默认值传递

给函数的输入参数设定一个默认值,如果该参数最终没有输入,则使用默认参数出入函数.

# 默认值传递
 def fun3(a,b=2,c=3):
  return a+b+c

print(fun3(a = 1))

输出:

6

四 包裹传递

在定义函数时,我们有时候并不知道调用的时候会传递多少个参数。这时候,包裹(packing)位置参数或者包裹关键字参数来进行参数传递会非常有用。

下面是包裹位置传递的例子:

def fun4(*name):
 print(type(name))
print(name)

fun4([1,2,3])
fun4((1,2,3))
fun4(1,2,3)

结果:

<class 'tuple'>
([1, 2, 3],)
<class 'tuple'>
((1, 2, 3),)
<class 'tuple'>
(1, 2, 3)

从上面的结果分析:

在fun4的参数表中,所有的参数被name收集,根据位置合并成一个元祖(tuple),这就是包裹位置传递。

 五 解包裹传递

 def func1(a,b=1,*c,**d):
  print(a,b,c,d)  

l = [3,4]
dic = {'@':2,'#':3}

func1(1,2,l,dic)
print("---------**------------")
func1(1,2,*l,**dic)
func1(1,2,3,4,**dic)

运行结果:

1 2 ([3, 4], {'@': 2, '#': 3}) {}
 ---------**------------
 1 2 (3, 4) {'@': 2, '#': 3}
 1 2 (3, 4) {'@': 2, '#': 3}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python传递参数方式小结

    本文实例总结了python传递参数方式.分享给大家供大家参考.具体分析如下: 当形参如*arg时表示传入数组,当形参如**args时表示传入字典. def myprint(*commends,**map): for comm in commends: print comm for key in map.keys(): print key,map[key] myprint("hello","word",username="tian",name=&q

  • java 直接调用python脚本,并传递参数代码实例

    最近陆续用python写了很多文件处理脚本,虽然功能都比较简单 ,但还是感觉到python对文件处理的简洁高效 ,越发觉得java的语法相当的繁琐~ 接到个需求处理ftp数据接口 .所以想把python脚本也用上.java代码定时扫描ftp数据仓库 ,调用python脚本入库. 直接采用java执行系统命令的方式 @Async public void readFileByPython(List<String> filePaths) throws FileNotFoundException {

  • 深入理解python中函数传递参数是值传递还是引用传递

    目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是"传对象引用"的方式.实际上,这种方式相当于传值和传引用的一种综合.如果函数收到的是一个可变对象(比如字典 或者列表)的引用,就能修改对象的原始值--相当于通过"传引用"来传递对象.如果函数收到的是一个不可变对象(比如数字.字符或者元组)的引用,就不能 直接修改原始对象--相当于通过"传值"来传递对象. 你可以在很多讨论该问题

  • Python传递参数的多种方式(小结)

    一 位置传递 没什么好过多讲解. # 位置传递实例: def fun1(a,b,c): return a+b+c print(fun1(1,2,3)) 输出: 6 二 关键字传递 更具每个参数的名字写入函数参数 # 关键字传递 def fun2(a,b,c): return a+b+c print(fun2(1,c=3,b=2)) 输出: 6 三 参数默认值传递 给函数的输入参数设定一个默认值,如果该参数最终没有输入,则使用默认参数出入函数. # 默认值传递 def fun3(a,b=2,c=3

  • springboot获取URL请求参数的多种方式

    1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交. /** * 1.直接把表单的参数写在Controller相应的方法的形参中 * @param username * @param password * @return */ @RequestMapping("/addUser1") public String addUser1(String username,String password) { System.out.pri

  • Python 字符串换行的多种方式

    第一种: x0 = '<?xml version="1.0"?>' \ '<ol>' \ ' <li><a href="/python" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Pytho

  • Vue页面跳转传递参数及接收方式

    最近接触了vue项目,这里记录一下vue跳转到下一页面携带参数的两种方式. 典型应用场景:列表页跳转到详情页 一.配置路由 文件路径:src/router/config.php import Vue from 'vue' import Router from 'vue-router' import classify from '.././components/classify/classify.vue' import classifyChild from '.././components/cla

  • python读取测试数据的多种方式

    目录 一.通过创建.ini或.conf文件读取 二.通过yaml文件读取 三.通过excel读取 一.通过创建.ini或.conf文件读取 1.创建一个config.ini或者.conf文件,这种方法就是ini文件的读取,如下 [api] url = www.taobao.com method = get [mysql] db=hello port=3306 2.使用python的configparser库读取,代码如下 from configparser import ConfigParser

  • SpringMVC 接收前端传递的参数四种方式小结

    目录 SpringMVC 接收前端传递的参数四种方式 @RequestParam 获取注解 @PathVariable获取注解 SpringMVC,可以不设置任何注解即可接收参数 SpringMVC,也可以自动包装成对象 @RequestBody 用来接收数组或者复杂对象 SpringMVC的自动封装(不传参也能进入) SpringMVC接收不到前端传递的参数原因 代码清单 SpringMVC 接收前端传递的参数四种方式 @RequestParam注解 @PathVariable注解 Sprin

  • Spring实现IoC的多种方式小结

    控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一种方法,也有人认为DI只是IoC的另一种说法.没有IoC的程序中我们使用面向对象编程对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制,控制反转后将对象的创建转移给第三方,个人认为所谓控制反转就是:获得依赖对象的方式反转了. IoC是Spring框架的核心内容,使用多种方式完美的实现了IoC,可以使用XML配置,也可以使用注解,新版本的Spring也可以零配置实现Io

  • Qt 中开启线程的多种方式小结

    目录 简介 1. 继承 QThread 重写 run 函数 2. 继承 QObject 调用 moveToThread 3. 继承 QRunnable 重新 run 函数,结合 QThreadPool 实现线程池 4. 使用 C++ 11 中的 sth::thread 5. Qt QtConcurrent 之 Run 函数 简介 在开发过程中,使用线程是经常会遇到的场景,本篇文章就来整理一下 Qt 中使用线程的五种方式,方便后期回顾.前面两种比较简单,一笔带过了,主要介绍后面三种.最后两种方法博

  • 9种python web 程序的部署方式小结

    主流的web server 一个巴掌就能数出来,apache,lighttpd,nginx,iis application,中文名叫做应用服务,就是你基于某个web framework写的应用代码DB server 泛指存储服务,web开发中用mysql比较多,最近几年因为网站规模扩大,memcache,redis这种key-value等存储也流行开来 放在最前面的 web server 有3个功能 高效率处理静态文件 ,web server都是用c开发,调用是native的函数,对IO,文件传

随机推荐