1. Python中使用*args和**kwargs

#!/usr/bin/env python3
# coding: utf-8
# File: args_kwargs_demo.py
# Author: lxw
# Date: 10/9/17 11:16 AM
"""
Demos for "*args" & "**kwargs" in Python.
Reference: [Python中如何使用*args和**kwargs](http://python.jobbole.com/83476/)
""" def func_args(*args):
print("type(args):{0}\targs:{1}\n".format(type(args), args)) def func_kwargs(**kwargs):
print("type(kwargs):{0}\tkwargs:{1}\n".format(type(kwargs), kwargs)) def func_args_kwargs(*args, **kwargs):
print("type(args):{0}\targs:{1}".format(type(args), args))
print("type(kwargs):{0}\tkwargs:{1}\n".format(type(kwargs), kwargs)) def func(arg1, arg2, arg3):
print("arg1:{0}\targ2:{1}\targ3:{2}".format(arg1, arg2, arg3)) def main():
# 函数定义
func_args_kwargs(1, 2, 3)
func_args_kwargs(1, a = 2, b = 3)
func_args_kwargs(a = 1, b = 2, c = 3) func_args(1, 2, 3)
# func_args(1, a = 2, b = 3) # TypeError: func_args() got an unexpected keyword argument 'a'
# func_args(a = 1, b = 2, c = 3) # TypeError # func_kwargs(1, 2, 3) # TypeError: func_kwargs() takes 0 positional arguments but 3 were given
# func_kwargs(1, a = 2, b = 3) # TypeError
func_kwargs(a = 1, b = 2, c = 3) print("---" * 10, "\n") # 函数调用
args = (1, "two", 3)
func(*args) args = [1, "two", 3]
func(*args)
del args[0]
print(args)
func("One", *args) args_dic = {"arg3": 3, "arg1": "", "arg2": "two"}
func(**args_dic)
del args_dic["arg1"]
print(args_dic)
func(1, **args_dic) if __name__ == '__main__':
main()
else:
print("Being imported as a module.") """
# Output:
type(args):<class 'tuple'> args:(1, 2, 3)
type(kwargs):<class 'dict'> kwargs:{} type(args):<class 'tuple'> args:(1,)
type(kwargs):<class 'dict'> kwargs:{'a': 2, 'b': 3} type(args):<class 'tuple'> args:()
type(kwargs):<class 'dict'> kwargs:{'a': 1, 'b': 2, 'c': 3} type(args):<class 'tuple'> args:(1, 2, 3) type(kwargs):<class 'dict'> kwargs:{'a': 1, 'b': 2, 'c': 3} ------------------------------ arg1:1 arg2:two arg3:3
arg1:1 arg2:two arg3:3
['two', 3]
arg1:One arg2:two arg3:3
arg1:1 arg2:two arg3:3
{'arg3': 3, 'arg2': 'two'}
arg1:1 arg2:two arg3:3
"""

Reference: Python中如何使用*args和**kwargs

2.  parameters with default values.

def func_default_value(a=1, b=2, c=3):
print("a:{0}\tb:{1}\tc:{2}".format(a, b, c)) def main():
# func_default_value(b=3, c=1, 2) # SyntaxError: positional argument follows keyword argumen
# func_default_value(a=2, 5, c=8) # SyntaxError: positional argument follows keyword argumen
func_default_value(2, 5, c=8) # OK
func_default_value("a", c=8) # OK
"""
# Output:
a: 2 b: 5 c:8
a: a b: 2 c:8
"""

最新文章

  1. java map的默认排序问题
  2. xml ---DOM操作
  3. Winfrom中ListBox绑定List数据源更新问题
  4. Eclipse上安装GIT插件EGit
  5. 自定义的BroadCastReceiver
  6. Oracle查看表结构的几种方法(转后加工)
  7. 时事新闻之 谷歌 google 发布Tensor Flow 源代码
  8. java监测方法运行时间/效率方法
  9. 移动web页面使用微软雅黑字体的问题
  10. E - Catch That Cow
  11. axure7.0下载安装教程
  12. ios 调节器 modal 得知
  13. Django 个性化管理员站点
  14. Leetcode 2. Add Two Numbers(medium)
  15. Shell 脚本进阶2
  16. PostgreSQL手动主从切换
  17. Cordova+jQuery Mobile+Spring REST
  18. mount 需要同时设置 noatime 和 nodiratime 吗?
  19. SaltStack salt-ssh 用法
  20. php5.4 的 arm 交叉编译

热门文章

  1. pycharm Tab键设置成4个空格
  2. JAVA在语言级支持多线程
  3. NPOI例子
  4. loadimage1();有问题
  5. lua基础(一)
  6. galera安装之编译安装xtrabackup 2.2.11
  7. excel如何将一个工作薄中的工作表生成独立的工作薄
  8. python反序列化研究学习
  9. 【BZOJ2424】[HAOI2010]订货 最小费用流
  10. UITextView 的 return响应事件