python关键字参数顺序无限制_python 仅限关键字参数一例,值得揣摩学习

在《流畅的python》有一章中讲到了仅限关键字参数,其中的例子用于生成HTML标签非常经典,值得初学者一起揣摩学习:

def tag(name,*content,cls=none,**attrs):

"""生成一个或多个HTML标签"""

if cls is not none:

attr['class']=cls

attr_str=''

if attrs:

attr_str=''.join(' %s="%s"' % (attr,value) for attr,value in sorted(attrs.ittems()))

if content:

return '\n'.join('%s%s>' % (name,attr_str,c,name) for c in content)

else:

return '' % (name,attr_str)

程序非常简洁优雅,功能说明如下:

tag('br') 一个参数,输出

tag('p','hello') name和content ,输出:

hello

tag('p','hello','world') 输出:

hello

world

tag('p','hello',id=3) 输出:

hello

tag函数签名中没有明确指定名称的关键字参数会被**attrs捕获,存入一个字典

tag('p','hello','world',cls='sidebar')

输出:

tag(content='testing',name='img')

输出:

content是第一个参数,被attres捕获

my_tag={'name':'img','title':'sunset','src':'sunset.jpg','cls':'framed'}

tag(**my_tag)

my_tag前面加上**,字典中的所有元素作为单个参数传入,同名键会绑定到对应的具名参数上,余下则被**attrs捕获。

输出:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值