问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Python方法的几种常见参数类型

发布网友 发布时间:2022-04-23 17:29

我来回答

3个回答

热心网友 时间:2022-04-07 08:33

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/yun/阿瑟·C·克拉克',
        'exts': 'txt',
        'includesubdir': True}
myiter = iter_dir(**kwgs)
for file in myiter:
    pass

热心网友 时间:2022-04-07 09:51

python. 如果只是研究算法,集合(set)是可以变的,它是一个无序不重复元素集 元组(touple)才是不可变的

热心网友 时间:2022-04-07 11:25

网页链接

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 我想要个繁体字大全,是这种形式的比如:干(乾) 就是有简体也有繁体的 腌咸鸭蛋,盐和鸭蛋的比例是多少?谢谢! 腌鸭蛋的方法30个鸭蛋用多少盐盐? 腌鸭蛋一斤鸭蛋多少盐 腌制咸鸭蛋用粗盐还是细盐? 请问腌鸭蛋盐和水的比,怎么腌? 请问腌制咸鸭蛋盐和水的比例或鸭蛋个数与盐的准确比例是多少 腌制鸭蛋用盐的比例 腌咸鸭蛋水和盐的比例 请问腌鸭蛋,盐和鸭蛋的配比是多少? 微信里收藏的视频,在手机上可以看,ipad上看不了,是什么原因? 盐水腌鸭蛋盐和水的比例是多少 苹果手机微信收藏视频怎么看不了? 腌鸭蛋放多少盐多少水一斤 微信收藏已经下载的视频,如果网站把此视频下架了,微信收藏的视频还能看吗? 一个长方体最多可以有()个面是正方形,最多可以有()条棱长度相等。 微信收藏小视频无法播放 长方形有几条棱,相对的几条棱长度相等 为什么农村建房混凝土楼板总有裂缝?该如何解决? 一个长方形最多有几个棱长一样 Python中参数是传值,还是传引用 python中什么是变量什么是参数? 简单谈谈Python中函数的可变参数 Python什么是命令行参数 python中 形式参数和实际参数有什么区别 python中什么是位置参数 python中参数是列表怎么使用 python中参数传值问题 python中参数传递的方式是什么 Python函数之参数类型和参数传递(上) iPhone暗黑模式来了,但如何单独关闭微信的深色模式? 安徽,现在还能报专升本吗 请问2019年安徽统招专升本可能什么时候考试呀 2019年专升本的考试时间是什么时候? 专升本考试什么时候考。怎么填志愿啊。 专升本每年考试是什么时侯? 2019年安徽普通专升本招生计划 2019专升本考试时间? 专升本考试时间大概是什么时间? 你好,备用金还上显示有别的逾期不能用了?