函数传参

  • 空参数

    定义函数时括号里面没有形参,调用时不用传参。
def func():
print('null para.') # 调用
func()
  • 位置传参

    规定形参的数量,调用时必须传递相同数量的形参。
def func(a, b):
print(a,b) # 调用
func(11, 22)
  • 带默认参数的形参

    带默认值的参数位于非默认值参数的后面, 即位于位置参数,可变参数后面。
def func(a, b, c=0):
print(a, b, c) # 调用
func(11, 22)
  • 传递元组型可变参数
def f2(a, b, *args):
print(a)
print(b)
print(args) rest = f2(10, 20, 30, 40, 50)
print(rest)
执行结果:
10
20
(30, 40, 50)
  • 元组传参传递的另一种方式:
def f2(a, b, *args):
print(a)
print(b)
print(args) my_tuple = (30, 40, 50)
rest = f2(10, 20, *my_tuple)
print(rest)
执行结果:
10
20
(30, 40, 50) 除位置参数10, 20以后的数据自动赋值给了元组形参*args
如果只传10,20这2个参数给f2函数也不会报错,此时元组接收的参数为空。
  • 传递字典型可变参数
def f2(a, b, **kwargs):
print(a)
print(b)
print(kwargs) rest = f2(10, 20, ka=558, kb='bbb')
print(rest)
执行结果:
10
20
{'ka': 558, 'kb': 'bbb'}
  • 传递字典参数的另一种形式:
def f2(a, b, **kwargs):
print(a)
print(b)
print(kwargs) kw_para = {'ka': 558,' kb': 'bbb'} rest = f2(10, 20, **kw_para)
print(rest)
执行结果:
10
20
{'ka': 558, 'kb': 'bbb'}
  • 位置参数、元组参数、字典参数混合传参
def f2(a, b, *args, **kwargs):
print(a)
print(b)
print(args)
print(kwargs) my_kw = {'ka': 558, 'kb': 'bbb'}
my_tuple = (30, 40, 50)
rest = f2(10, 20, *my_tuple, **my_kw)
print(rest)
结果:
10
20
(30, 40, 50)
{'ka': 558, 'kb': 'bbb'}
按位置参数、元组参数、字典参数的顺序定义函数和调用,位置顺序不能调换!
除非有带默认参数的位置参数,此时带有默认参数的位置参数需要放到元组参数和字典参数之间。
  • 带有默认参数的位置参数、元组参数、字典参数混合传参
def f2(a, *args, b=0, **kwargs):
print(a)
print(b)
print(args)
print(kwargs) my_kw = {'ka': 558, 'kb': 'bbb'}
my_tuple = (30, 40, 50)
rest = f2(10, *my_tuple, **my_kw)
print(rest)
结果:
10
0
(30, 40, 50)
{'ka': 558, 'kb': 'bbb'}

函数返回值

  • 函数执行完不出现return语句,或者return语句不返回值,此时调用者收到的返回值为None。
  • 可以返回一个元组。
def func():
return 1, 2, 3 x, y, z = func()
  • 返回其他对象等。

python函数传参和返回值注意事项的更多相关文章

  1. python函数入参和返回值

    以下内容参考自runoob网站,以总结python函数知识点,巩固基础知识,特此鸣谢! 原文地址:http://www.runoob.com/python3/python3-function.html ...

  2. 悉数 Python 函数传参的语法糖

    TIOBE排行榜是程序开发语言的流行使用程度的有效指标,对世界范围内开发语言的走势具有重要参考意义.随着数据挖掘.机器学习和人工智能相关概念的风行,Python一举收获2018年年度语言,这也是Pyt ...

  3. python函数传参是传值还是传引用?

    首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...

  4. arm汇编进入C函数分析,C函数压栈,出栈,传参,返回值

    环境及代码介绍 环境和源码 由于有时候要透彻的理解C里面的一些细节问题,所有有必要看看汇编,首先这一切的开始就是从汇编代码进入C的main函数过程.这里不使用编译器自动生成的这部分汇编代码,因为编译器 ...

  5. 深入理解PHP内核(十二)函数-函数的定义、传参及返回值

    原文链接:http://www.orlion.ga/344/ 一.函数的定义 用户函数的定义从function 关键字开始,如下 function foo($var) {    echo $var; ...

  6. 深入理解PHP内核(六)函数的定义、传参及返回值

    一.函数的定义 用户函数的定义从function 关键字开始,如下 function foo($var) { echo $var; } 1.词法分析 在Zend/zend_language_scann ...

  7. python函数 传参的多种方式 解读

    1.函数的参数在哪里定义 在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号, 隔开 案列: 2.带参数的函数调用: 函数定义了参数,那么 ...

  8. python函数的使用和返回值

    #coding=utf-8 def a(): i=1a() #函数的返回值,用return语句实现 #一个返回值的情况def test(): i=7 return iprint test() #多个返 ...

  9. springboot实现xml传参和返回值

    1.新建maven工程xml-bean-convert pom.xml如下 <?xml version="1.0" encoding="UTF-8"?&g ...

随机推荐

  1. 常用的JAVA第三方工具类

    转自:https://www.jianshu.com/u/9c5cb1ee4c46 一. org.apache.commons.io.IOUtils 注解 说明 closeQuietly 关闭一个IO ...

  2. git使用,Git的skil-map,git配置http/https/socks5代理

    . 检出.克隆库: git clone git://git.openwrt.org/openwrt.git 2. git查看某个文件的修改历史 git log --pretty=oneline 文件名 ...

  3. 使用 Python 实现多进程

    w 使用 Python 实现多进程https://www.ibm.com/developerworks/cn/aix/library/au-multiprocessing/

  4. EnumMap 源码分析

    EnumMap EnumMap 能解决什么问题?什么时候使用 EnumMap? 1)EnumMap[枚举映射]中的键值必须来自单个枚举. 2)EnumMap 根据枚举键的自然顺序来维护,迭代遍历是有序 ...

  5. Java面试中hashCode()与equals(Object obj)方法关系的准确回答

    原文地址: https://blog.csdn.net/qq_19260029/article/details/77917925 hashCode()与equals(Object obj)都是Java ...

  6. Jenkins持续集成_04_解决HTML测试报告样式丢失问题

    前言 最近进行Jenkins自动化测试持续集成,配置HTML测试报告后,但是点击进去发现测试报告样式丢失,未加载CSS&JS样式,如下图: 由于Jenkins中配置了CSP(Content S ...

  7. 【ABAP系列】SAP MB5B中FI凭证摘要是激活的/结果可能不正确 的错误

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP MB5B中FI凭证摘要是 ...

  8. Java8的I/O整理

    一.什么是I/O? Java的核心库java.io提供了全面的IO接口.包括:文件读写.标准设备输出等.Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入. 二.什 ...

  9. layer.msg()自动关闭后刷新页面

    layer.msg("2秒就消失哦", { time: 2000 }, function () {                    window.location.href ...

  10. 实列+JVM讲解类的实列化顺序

    刨根问底---类的实列化顺序 开篇三问 1什么是类的加载,类的加载和类的实列有什么关系,什么时候类加载 2类加载会调用构造函数吗,什么时候调用构造函数 3什么是实列化对象,实列化的对象有什么东西. 我 ...