匿名用户

1级

2018-11-01 回答

无默认值参数(关键字参数):

def myfun(a):

print(a)这是参数的最简单形式。这个a就是无默认值参数。在调用函数时必需为无默认值参数指定值。

无默认值参数可以通过两种方式来指定值:

# 按参数定义顺序不指名传递值

myfun('/src/image')

# 无视定义顺序,通过关键字指定值

myfun(a='/src/image')无默认值参数在函数内部使用关键字作为变量名来访问

无默认值参数可以有多个,也是一些其它参数类型的基础。

默认值参数:

如果在定义时为参数指定一个默认值,那么,这个参数就可以在调用时不指定值:

def myfun(a=''):

print(a)

# 不为a指定值

myfun()

# 按定义顺序为a指定值

myfun('/src/lib')

# 通过关键字为a指定值

myfun(a='/src/lib')在定义时,所有默认值参数只能出现在所有无默认值参数之后,也就是说,在函数的定义中,要先定义无默认值参数,再定义默认值参数。

不定长参数:

在参数名之前添加一个*号,则该参数称为不定长参数。一个函数只可以有一个不定长参数。不定长参数的定义位置没有限制,它可以定义在无默认值参数之间,也可以定义在默认值参数之后,或者它们之间的任何一个位置。

在调用时,不定长参数之后定义的无前两种类型的参数就只能使用关键字来指定值了。

不定长参数在函数内部被处理为一个tuple。

def _max(*e,base=9):

print('called "_max":')

print('  e:', e)

print('  base:', base)

# 只向不定长参数传递了值

# 输出:

# called "_max":

#   e: (3, 4, 5)

#   base: 9

_max(3, 4, 5)

# 也向默认值参数base传递了值

# 输出:

# called "_max":

#   e: (3, 4)

#   base: 5

_max(3, 4, base=5)

# 直接通过一个元组传递不定长参数的值

# 输出:

# called "_max":

#   e: (3, 4)

#   base: 5

p=(3, 4)

_max(*p, base=5)

# 使用混合方式传递不定长参数

# 输出:

# called "_max":

#   e: (3, 4, 5, 6, 7)

#   base: 10

p1=(3, 4)

p2=(6, 7)

_max(*p1, 5, *p2, base=10)调用函数时如果没有为不定长参数指定值,将导入一个空元组。

不定长关键字参数:

不定长关键字参数使用两个星号作为前缀与其它类型的参数区分,它在函数内被导入为一个字典。调用时需要为不定长关键字参数给出约定的关键字名,赋值形式如同无默认值参数。

一般情况下,不定长参数是作为最后一个参数来定义。

def myfun(**kw):

print(kw)

myfun(base=1, home='aaaa')以上只是基本的调用方式,有些时候,可以有更有趣的调用方式,例如定义了一个既含无默认值参数也含默认值参数的函数:

def iter_dir(homedir, exts='*', includesubdir=False, monoinfile=False,

titlere='^[^ ^ ].*', textengine=default_textengine,

encode=None):调用时也可以用这样的方式来传递值:

kwgs = {'homedir': 'C:/Users/hunte/Documents/baiduyun/阿瑟·C·克拉克',

'exts': 'txt',

'includesubdir': True}

myiter = iter_dir(**kwgs)

for file in myiter:

pass

python参数方法_Python方法的几种常见参数类型相关推荐

  1. 采用python解决实际问题_Python编程语言解决几种常见的实际问题

    Python编程语言解决几种常见的实际问题 (2012-10-25 17:24:12) 标签: it python python培训 北京 杂谈 Python编程语言解决一些实际问题 from os. ...

  2. C++8种常见类类型

    C++8种常见类类型 前言 大部分面向对象开发工作中都应用了以下部分或者全部的基本类别的类: 1.具体类(concrete class) 2.抽象类(abstract class) 3.接口类(int ...

  3. python爬虫十二种方法_Python爬虫的N种姿势

    问题的由来 前几天,在微信公众号(Python爬虫及算法)上有个人问了笔者一个问题,如何利用爬虫来实现如下的需求,需要爬取的网页如下(网址为:https://www.wikidata.org/w/in ...

  4. python单例模式的4种实现方法_Python单例模式的4种实现

    模块在一个Python应用程序中只有一份,它本身就是单例的,将所需要的属性和方法,直接暴露在模块中的全局变量和方法,也可以实现单例. Python单例模式的4种实现 # !/usr/bin/env p ...

  5. python加锁的方法_python 方法锁

    Python基础系列讲解--线程锁Lock的使用介绍 我们知道Python的线程是封装了底层操作系统的线程,在Linux系统中是Pthread(全称为POSIX Thread),在Windows中是W ...

  6. python函数不包括参数函数_python中实现函数不限制参数的数量

    我们在写Python代码的时候,有的时候需要设计一种函数,这种函数的参数个数不确定,或者说要求函数的参数不限个数,只有在函数被调用的时候,才能确定参数的数量.本文介绍如何实现这样的函数参数接口的设计. ...

  7. python列表操作程序_Python列表操作,比较常见的10个问题

    列表是比较常用的数据类型之一,本文整理了 StackOverflow 上关于列表操作被访问较多的10个问答,如果你在开发过程中遇到这些问题,不妨先思考一下如何解决. 1.迭代列表,如何访问列表下标索引 ...

  8. Python字串(string)基础与20种常见操作

    多数的程式设计师,处理字串的次数远比数字还要多. 程式设计给人的印象通常是会使用到许多数学,也是不少人对学程式语言感到惧怕的原因. 但其实程式设计的实务上,处理文字字串(string)的频率远比数字高 ...

  9. post请求几种常见content-type类型

    Content-Type Content-Type(MediaType),即是Internet Media Type,互联网媒体类型,也叫做MIME类型.在HTTP协议消息头中,使用Content-T ...

最新文章

  1. RocketMQ 消息丢失场景及解决办法
  2. java定时任务,每天定时执行任务
  3. GRUB2 管理器—Grub Customizer
  4. IntelliJ Idea 常用快捷键 列表
  5. oracle12 扩充表空间,oracle查询及扩充表空间
  6. 编写高质量代码:Web前端开发修炼之道(三)
  7. [Unity] Canvas 设置为 Screen Space - Camera 时,UI 被场景物体遮挡的解决办法:设置 Canvas 的 Plane Distance 为一个较小的数
  8. 怪兽充电宝 共享充电宝源码
  9. 好分数阅卷3.0_四川自考阅卷会为了控制通过率故意压分吗?考不过怎么办?
  10. java 中生成文档_在Java中生成专业的公文文档
  11. html图片自动剪裁,HTML canvas图像裁剪
  12. zuc算法代码详解_密码学算法之序列密码中的ZUC算法详解
  13. 微信HOOK协议软件,已实现云控,将微信的效率最大化
  14. 第四章 春夏秋冬,二十四节气
  15. 你应该补钙吗?看这篇就懂了
  16. (整理)吊炸天的CNNs,这是我见过最详尽的图解!(上)
  17. emuelec 镜像太大无法写入U盘解决方法
  18. Learn OpenGL 笔记7.4 PBR-Specular IBL(Image based lighting-特殊的基于图像的照明)
  19. SpringBoot+Mybatis-Plus项目接入ClickHouse数据源
  20. ROS wiki系列|ROS wiki初探(自用)

热门文章

  1. Visual Studio 2017创建XAML文件
  2. Xamarin XAML语言教程模板视图TemplatedView(二)
  3. Kail Linux渗透测试教程之免杀Payload生成工具Veil
  4. vmboxcentos安装重启又要安装_Windows 10八月更新再遇尴尬:安装失败 或安装后随机重启...
  5. python invalid type promotion_17个新手常见Python运行时错误
  6. python杨辉三角居中center_python经典---杨辉三角(两种方法)
  7. ffempge 循环_FFmpeg常用使用命令
  8. 瘫痪17年,利用双向脑机接口来诱发触觉,控制机械手
  9. pyglet wave.Error: file does not start with RIFF id
  10. i卡来了!英特尔公布游戏独显出货时间表,放话今年要卖400万张