deftag(name,content='Nothing...',*args): template = '%s%s>'%(name,content,name) if args: for arg in args: template += '%s%s>'%(name,arg,name) return template
deftag(name,content='Nothing...',*args,**kwargs): attrs = {} if kwargs: attrs.update(kwargs) attrs = ' '.join(['%s=\'%s\''%(k,v) for k,v in attrs.items()])
template = '%s%s>'%(name,attrs,content,name) if args: for arg in args: template += '%s%s>'%(name,attrs,arg,name) return template
其调用形式header = tag('p','Welcome to my website.',class_='p1',style='font-size:30'),调用中,明确指出了仅限关键字参数class_和style。函数定义如下,其使用attrs字典整合了两个仅限关键字参数和关键字参数收集器的内容:
deftag(name,content='Nothing...',*args,class_,style='color:000000',**kwargs): attrs = {} attrs['class'] = class_ attrs['style'] = style if kwargs: attrs.update(kwargs) attrs = ' '
.join(['%s=\'%s\''%(k,v) for k,v in attrs.items()])
template = '%s%s>'%(name,attrs,content,name) if args: for arg in args: template += '%s%s>'%(name,attrs,arg,name) return template