python函数传参和返回值注意事项
函数传参
- 空参数
定义函数时括号里面没有形参,调用时不用传参。
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函数传参和返回值注意事项的更多相关文章
- python函数入参和返回值
以下内容参考自runoob网站,以总结python函数知识点,巩固基础知识,特此鸣谢! 原文地址:http://www.runoob.com/python3/python3-function.html ...
- 悉数 Python 函数传参的语法糖
TIOBE排行榜是程序开发语言的流行使用程度的有效指标,对世界范围内开发语言的走势具有重要参考意义.随着数据挖掘.机器学习和人工智能相关概念的风行,Python一举收获2018年年度语言,这也是Pyt ...
- python函数传参是传值还是传引用?
首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...
- arm汇编进入C函数分析,C函数压栈,出栈,传参,返回值
环境及代码介绍 环境和源码 由于有时候要透彻的理解C里面的一些细节问题,所有有必要看看汇编,首先这一切的开始就是从汇编代码进入C的main函数过程.这里不使用编译器自动生成的这部分汇编代码,因为编译器 ...
- 深入理解PHP内核(十二)函数-函数的定义、传参及返回值
原文链接:http://www.orlion.ga/344/ 一.函数的定义 用户函数的定义从function 关键字开始,如下 function foo($var) { echo $var; ...
- 深入理解PHP内核(六)函数的定义、传参及返回值
一.函数的定义 用户函数的定义从function 关键字开始,如下 function foo($var) { echo $var; } 1.词法分析 在Zend/zend_language_scann ...
- python函数 传参的多种方式 解读
1.函数的参数在哪里定义 在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号, 隔开 案列: 2.带参数的函数调用: 函数定义了参数,那么 ...
- python函数的使用和返回值
#coding=utf-8 def a(): i=1a() #函数的返回值,用return语句实现 #一个返回值的情况def test(): i=7 return iprint test() #多个返 ...
- springboot实现xml传参和返回值
1.新建maven工程xml-bean-convert pom.xml如下 <?xml version="1.0" encoding="UTF-8"?&g ...
随机推荐
- 【bzoj2882】工艺
题目描述: 小敏和小燕是一对好朋友. 他们正在玩一种神奇的游戏,叫Minecraft. 他们现在要做一个由方块构成的长条工艺品.但是方块现在是乱的,而且由于机器的要求,他们只能做到把这个工艺品最左边的 ...
- iOS-Swizzle
最后更新:2017-06-21 一.先说结论 void swizzleMethod(Class cls, SEL originalSelector, SEL swizzledSelector) { M ...
- EasyUI combotree 设置节点折叠和叶子节点循环展开的BUG
树实体 public class Combotree { public string id { get; set; } public string text { get; set; } public ...
- Broken pipe
出现broken pipe 的一种情况是向socket写数据,但是对端已经关闭socket连接,此时会触发SIGPIPE信号,该信号可以捕获. signal(SIGPIPE, SIG_IGN);
- React-Native 之 GD (三)近半小时热门
1.设置页面跳转 半小时热门组件 GDHalfHourHot.js /** * 近半小时热门 */ import React, { Component } from 'react'; import ...
- 【洛谷P1310 表达式的值】
题目链接 题目描述 对于1 位二进制变量定义两种运算: 运算的优先级是: 先计算括号内的,再计算括号外的. “× ”运算优先于“⊕”运算,即计算表达式时,先计算× 运算,再计算⊕运算.例如:计算表达式 ...
- 自动化生成 Openstack 新项目开发框架
目录 目录 前言 环境 openstack-project-generator 前言 Openstack Developer 应该都知道, 开发一个 Openstack 的新项目并不是一个从 0 到 ...
- 封装好日志的类 logging
import logging from logging import handlers class MyLogger(): def __init__(self,file_name,level='inf ...
- UI自动化之异常与截图处理
对操作不成功时,希望能够继续执行其他操作,或者是,希望操作不成功时,能够写日志记录 目录 1.常见异常 2.截图处理 1.常见异常 1.NoSuchElementException:没有找到元素 2. ...
- C# datatable 导出到Excel
datatable导出到Excel /// <summary> /// 将DataTable导出为Excel文件(.xls) /// </summary> /// <pa ...