对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 相关文章推荐
Python实现约瑟夫环问题的方法
May 03 Python
python中Apriori算法实现讲解
Dec 10 Python
Python实现学校管理系统
Jan 11 Python
python实现单向链表详解
Feb 08 Python
pandas pivot_table() 按日期分多列数据的方法
Nov 16 Python
python读取目录下最新的文件夹方法
Dec 24 Python
python使用pipeline批量读写redis的方法
Feb 18 Python
Python两台电脑实现TCP通信的方法示例
May 06 Python
Python 3.8新特征之asyncio REPL
May 28 Python
python3.8 微信发送服务器监控报警消息代码实现
Nov 05 Python
tensorflow之变量初始化(tf.Variable)使用详解
Feb 06 Python
Python实现socket库网络通信套接字
Jun 04 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
基于PHP与XML的PDF文档生成技术
2006/10/09 PHP
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
一个php短网址的生成代码(仿微博短网址)
2014/05/07 PHP
php实现页面纯静态的实例代码
2017/06/21 PHP
PHP新特性详解之命名空间、性状与生成器
2017/07/18 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
JavaScript 撑出页面文字换行
2009/06/15 Javascript
jquery选择器(常用选择器说明)
2010/09/28 Javascript
解析URI与URL之间的区别与联系
2013/11/22 Javascript
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
JavaScript数组各种常见用法实例分析
2015/08/04 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
Vue.js搭建移动端购物车界面
2020/06/28 Javascript
Vue组件化开发思考
2018/02/02 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
ES6入门教程之Array.from()方法
2019/03/23 Javascript
小程序调用微信支付的方法
2019/09/26 Javascript
vue中uni-app 实现小程序登录注册功能
2019/10/12 Javascript
微信小程序实现简单的select下拉框
2020/11/23 Javascript
JavaScript实现网页动态生成表格
2020/11/25 Javascript
理解python正则表达式
2016/01/15 Python
python 不以科学计数法输出的方法
2018/07/16 Python
Python实现的列表排序、反转操作示例
2019/03/13 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
聊聊python中的异常嵌套
2020/09/01 Python
SQL Server数据库笔试题和答案
2016/02/04 面试题
2019年分享net面试的经历和题目
2016/08/07 面试题
桥梁工程专业求职信
2014/04/21 职场文书
党员先锋岗事迹材料
2014/05/08 职场文书
2014年师德承诺书
2014/05/23 职场文书
工程部文员岗位职责
2015/02/04 职场文书
幼师辞职信范文大全
2015/05/12 职场文书