Python之函数参数
# -*- coding: utf-8 -*-
"""
Created on Fri Sep 7 09:13:50 2018 @author: zhen
"""
# 默认参数,必须在参数定义末尾
def mrcs(name, sex, age=18):
print(name, sex, age) print('*'*15+'默认参数'+'*'*15)
mrcs('liming','man')
mrcs('wangli', 'woman', 23)
print('='*15+'命名参数'+'='*15)
# 命名参数
def mmcs(name, sex, age):
print(name, sex, age) # 传统参数
mmcs('zhangsan', 'man', 34)
# 命名参数
mmcs(name='lisi', sex='man', age=12)
# 组合使用时传统参数必须按照参数定义的顺序
mmcs('bibi', age=23, sex='woman')
# mmcs(age=23, 'bibi', sex='woman') : SyntaxError: positional argument follows keyword argument print('-'*15+'可变参数'+'-'*15)
# 可变参数,元组
def kbcs(name, sex, age, *args):
print(name,sex,age)
print(args) # 不向args传参
kbcs('lili', 'woman', 18)
# 传入单个参数
kbcs('lili', 'woman', 18, 'beautiful')
# 传入多个参数
kbcs('lili', 'woman', 18, 'beautiful', 'fradom', 2018) print('+'*10+'键值对类型的可变参数'+'+'*10)
# 键值对类型的可变参数,字典
def kb2cs(name, sex, age, **kwargs):
print(name,sex,age)
print(kwargs) # 不向args传参
kb2cs('kk', 'man', 21)
# 传入单个参数
kb2cs('kk', 'man', 21, character='childhood')
# 传入多个参数
kb2cs('kk', 'man', 21, character='childhood', hobby='free', birthyear=2013) print('^'*15+'综合使用'+'^'*15)
# 综合使用,默认参数,命名参数,可变参数和键值对类型的可变参数
def comprehensive(name, sex='nan', *args, **kwargs):
print(name, sex, args, kwargs) # SyntaxError: positional argument follows keyword argument :命名参数和键值对类型的可变参数不能同时使用,会产生歧义
# comprehensive('liming', sex='man', 'student', 23, hobby='flying', idle=4)
comprehensive('liming', 'man', 'student', 23, hobby='flying', idle=4)
print('*'*37)
结果:
Python之函数参数的更多相关文章
- (转)python中函数参数中如果带有默认参数list的特殊情况
在python中函数参数中如果带有默认参数list遇到问题 先看一段代码 1 2 3 4 5 6 7 8 9 def f(x,l=[]): for i in range(x): ...
- python中函数参数的引用方式
值传递和引用传递时C++中的概念,在python中函数参数的传递是变量指向的对象的物理内存地址!!! python不允许程序员选择采用传值还是传引用.Python参数传递采用的肯定是“传对象引用”的方 ...
- Python基础-函数参数
Python基础-函数参数 写在前面 如非特别说明,下文均基于Python3 摘要 本文详细介绍了函数的各种形参类型,包括位置参数,默认参数值,关键字参数,任意参数列表,强制关键字参数:也介绍了调用函 ...
- Python之函数&参数&参数解构
1.1函数定义 def 函数名(参数列表): 函数体(代码块) [return 返回值] p 函数名就是标识符,命名要求一样 语句块必须缩进,约定4个空格 Python的函数没有return语句,隐式 ...
- Python 可变长度函数参数
func( *tuple_grp_nonkw_args, **dict_grp_kw_args ) 在编程的过程中,我们可能会遇到函数参数个数不固定的情况.这时就需要使用可变长度的函数参数来实现我们的 ...
- python中函数参数
默认参数注意点 优点:灵活,当没有指定与形参对应的实参时就会使用默认参数 缺陷: 例子: >>> def h(m, l=[]): #默认参数时列 ...
- 对Python中函数参数类型及排序问题,三个方面的总结
Python中函数的参数问题有点复杂,主要是因为参数类型问题导致的情况比较多,下面来分析一下. 参数类型:缺省参数,关键字参数,不定长位置参数,不定长关键字参数. 其实总共可以分为 位置参数和关键字参 ...
- 第5.2节 Python的函数参数收集
函数的参数使用除了常规的位置参数和关键字参数外,还支持可变个数的函数参数,这种支持可变个数的参数方法称为参数收集,对应的参数称为收集参数. 一.参数收集的定义 Python的函数支持可变不定数量的参数 ...
- python的函数参数传递方式
python的一切数据类型都是对象.但是python的对象分为不可变对象和可变对象.python的变量是引用,对python变量的赋值是引用去绑定该对象. 可变对象的数据发生改变,例如列表和字典,引用 ...
- python 使用函数参数注解
使用函数参数注解是一个很好的办法,它能提示程序员应该怎样正确使用这个函数. 函数注解只存储在函数的annotations 属性中
随机推荐
- MaxCompute 2.0复杂数据类型之array
1. 含义 类似于Java中的array.有序.可重复. 2. 场景 什么样的数据,适合使用array类型来存储呢?这里列举了几个我在开发中实际用到的场景. 2.1 标签类的数据 为什么说标签类数据适 ...
- Bootstrap3级联多选下拉框
<!DOCTYPE html> <html> <head> <title>Bootstrap3级联多选下拉框</title> <met ...
- 把时间留给重要的事——Markdown 模板功能上线
你是否遇到过因为同事在任务中过于放飞自我而感到头疼?或者经历过因为内容描写的不系统而导致关键信息被忽视? 现在,CODING Markdown 模板功能将帮助你解决这些困扰. 功能介绍 CODING ...
- SQL两列数据,行转列
SQL中只有两列数据(字段1,字段2),将其相同字段1的行转列 转换前: 转换后: --测试数据 if not object_id(N'Tempdb..#T') is null drop table ...
- Spring IOC源码实现流程
最近一段时间学习了IOC的源码实现,分享一下大概流程 创建一个测试类 代码如下: package com.zcg.learn.Test; import org.junit.Test;import or ...
- C++基础——类继承中方法重载
一.前言 在上一篇C++基础博文中讨论了C++最基本的代码重用特性——类继承,派生类可以在继承基类元素的同时,添加新的成员和方法.但是没有考虑一种情况:派生类继承下来的方法的实现细节并不一定适合派生类 ...
- 一键解决更改计算机名后无法启动MSSQLSERVER服务问题
问题版本:SQL Server 2012. 解决办法:打开服务,Win + R运行services.msc,找到 SQL SERVER(MSSQLSERVER)服务右键->属性,切换至登录选项卡 ...
- Pycharm配置Git和Github
安装Git(安装过程略) 注册Github(注册过程略) Pycharm配置 Github配置 进入Pycharm后点File——Settings,进入设置页面,依次展开Version Control ...
- [LeetCode] 25. k个一组翻转链表
题目链接: https://leetcode-cn.com/problems/reverse-nodes-in-k-group/ 题目描述: 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链 ...
- javascript 字符串转换数字的方法大总结
方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有 ...