对python3 中方法各种参数和返回值详解


Posted in Python onDecember 15, 2018

如下所示:

# -*- coding:utf-8 -*-
# Author: Evan Mi
 
# 函数
 
 
def func1():
  print('in the func1')
  return 0
 
# 过程
 
 
def func2():
  print('in the func2')
 
"""
多个值用逗号分割后返回,会分装到一个tuple中返回,
接收的时候,如果使用一个变量接收,那么这个接收变量就是一个tuple类型的
如果接收的时候也用逗号分割多个值来接收,那么可以分别对应返回tuple中的每一个值
"""
 
 
def func3():
  return 1, 'hello', ['alex', 'wupei'], {'name': 'alex'}
 
x = func1()
y = func2()
z = func3() # 一个值接收,是一个tuple
q, w, e, r = func3() # 用对应个数的值接收,每个变量对应tuple对应位置的值
print(x)
print(y)
print(z)
 
print("center".center(100, '*'))
print(q)
print(w)
print(e)
print(r)
 
print("center".center(100, '*'))
 
# 定义一个方法
 
 
def test(x_arg, y_arg):
  print(x_arg)
  print(y_arg)
 
 
test(1, 2) # 位置参数调用
test(y_arg=3, x_arg=5) # 关键字参数调用,直接给形式参数赋值
 
 
def test1(x_arg, y_arg, z_arg):
  print(x_arg)
  print(y_arg)
  print(z_arg)
 
 
# 关键字参数不能写到位置参数之前
test1(1, z_arg=2, y_arg=3)
 
 
# 默认值参数
def test2(x_arg, y_arg=2):
  print(x_arg)
  print(y_arg)
 
 
print("center".center(100, '*'))
test2(1)
print("center".center(100, '*'))
test2(1, 3)
print("center".center(100, '*'))
test2(y_arg=5, x_arg=8)
 
"""
在*args 前面有参数(x, *args),那么(1,2,3,4,5)正确,(x=1,2,3,4,5)正确,(2,3,4,5,x=1)错误,给x多次赋值了
在*args 后面有参数(*args,x,y)那么x,y只能采用关键字赋值方式(1,2,3,4,5,x=6,y=8) 
"""
 
 
def test3(*args):
  print(args)
 
 
test3(1, 2, 3, 4, 5)
test3(*[1, 2, 3, 4, 5])
print("center".center(100, '*'))
 
 
def test4(x_arg, *args):
  print(x_arg)
  print(args)
 
 
test4(1, 2, 3, 4, 5)
 
 
def test5(**kwargs):
  print(kwargs)
  print(kwargs['name'])
 
 
test5(name='alex', age=8)
test5(**{'name': 'Evan', 'age': 8})
 
 
def test6(*args, xx):
  print(args)
  print(xx)
 
# **kwargs 必须在最后
#  def test7(**kwargs,xx=3): 这样定义是错误的
 
 
print("test6")
# test6(1, 2, 3, 4, 5999, xx=4)
"""
*args 接收位置参数,转换为tuple
**kwargs 接收关键字参数,转换为dict
位置参数不能写在关键字参数的后面
"""
 
 
def tt(xx=1, *args, **kwargs):
  print(xx)
  print(args)
  print(kwargs)
 
 
def ttt(xx, **kwargs):
  print(xx)
  print(kwargs)
 
 
def tttt(*args, xx, **kwargs):
  print(args)
  print(xx)
  print(kwargs)
 
# kwargs接收的关键字参数的名字不能和函数列表中已有的其他参数相同
# tt(2, 3, 4, 5, name=100, age=199, xx=98)
# 出现了xx,优先赋值给参数列表中的xx,而不是在dict中加入关键字为xx的key-value对
# ttt(x=99, y=99, xx=43)
 
tttt(1,2,3,4,5,x=100,y=33,xx=8)

以上这篇对python3 中方法各种参数和返回值详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python3+PyQt5实现拖放功能
Apr 24 Python
python自动发送测试报告邮件功能的实现
Jan 22 Python
python中时间、日期、时间戳的转换的实现方法
Jul 06 Python
python画图——实现在图上标注上具体数值的方法
Jul 08 Python
使用python telnetlib批量备份交换机配置的方法
Jul 25 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
Sep 24 Python
给大家整理了19个pythonic的编程习惯(小结)
Sep 25 Python
Python爬取365好书中小说代码实例
Feb 28 Python
Python文本文件的合并操作方法代码实例
Mar 31 Python
python 给图像添加透明度(alpha通道)
Apr 09 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
Sep 17 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
Feb 22 Python
对python中的argv和argc使用详解
Dec 15 #Python
Python输出\u编码将其转换成中文的实例
Dec 15 #Python
对python:print打印时加u的含义详解
Dec 15 #Python
Python 最大概率法进行汉语切分的方法
Dec 14 #Python
python实现任意位置文件分割的实例
Dec 14 #Python
pytorch permute维度转换方法
Dec 14 #Python
Python语言快速上手学习方法
Dec 14 #Python
You might like
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
Thinkphp 中 distinct 的用法解析
2016/12/14 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
用jscript启动sqlserver
2007/06/21 Javascript
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
jQuery tagsinput在h5邮件客户端中应用详解
2016/09/26 Javascript
原生JS实现图片轮播效果
2016/12/26 Javascript
javascript笔记之匿名函数和闭包
2017/02/06 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
EasyUI Tree树组件无限循环的解决方法
2017/09/27 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
javascript中的replace函数(带注释demo)
2018/01/07 Javascript
django js 实现表格动态标序号的实例代码
2019/07/12 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
Nest.js环境变量配置与序列化详解
2021/02/21 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
[07:37]DOTA2-DPC中国联赛2月2日Recap集锦
2021/03/11 DOTA
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
Python进阶学习之特殊方法实例详析
2017/12/01 Python
Python Django 命名空间模式的实现
2019/08/09 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
使用Python求解带约束的最优化问题详解
2020/02/11 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
2014年幼儿园元旦活动方案
2014/02/13 职场文书
食品业务员岗位职责
2014/03/18 职场文书
综合测评自我评价
2015/03/06 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
签字仪式主持词
2015/07/03 职场文书
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js
分析Netty直接内存原理及应用
2021/06/14 Java/Android