博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解理解python中的'*','*args','**','**kwargs'
阅读量:4878 次
发布时间:2019-06-11

本文共 908 字,大约阅读时间需要 3 分钟。

http://blog.csdn.net/callinglove/article/details/45483097

 

讲了一大堆,

我也是用来理解类继承当中的参数行为的。

=================

在任何时候继承类和重写方法的,我们应当用到’*args’和’**kwargs’将接收到的位置参数和键值参数给父类方法。

=================

测试代码

#!/usr/bin/env python# -*- coding: utf-8 -*-class Model(object):    def __init__(self, name):        self.name = name    def save(self, force_update=False, force_insert=False):        if force_update and force_insert:            raise ValueError("Cannot perform both operations")        if force_update:            print "Updated an existing record"        if force_insert:            print "Created a new record"class ChildModel(Model):    def save(self, *args, **kwargs):        if self.name == 'abcd':            super(ChildModel, self).save(*args, **kwargs)        else:            return Nonec = ChildModel('abcd')c.save(force_insert=True)c.save(force_update=True)

 

结果

转载于:https://www.cnblogs.com/aguncn/p/6077918.html

你可能感兴趣的文章
UVa 12716 - GCD XOR(筛法 + 找规律)
查看>>
Spring Cloud学习资料
查看>>
制作无广告启动盘
查看>>
python使用httplib2访问REST服务的例子
查看>>
经典代码(01)
查看>>
生成ico格式图标
查看>>
并查集hdu4424
查看>>
【异常】IOException parsing XML document from class path resource [xxx.xml]
查看>>
第五周作业
查看>>
COJ 2135 Day10-例1
查看>>
jdbc之分页查询
查看>>
PHP手动环境搭建之WAMP
查看>>
COJ 1003 WZJ的数据结构(三)ST表
查看>>
sbrk and coreleft
查看>>
树型DP
查看>>
怎么在ubuntu上使用pidgin登陆QQ
查看>>
思维的惰性
查看>>
2018-2019-2 网络对抗技术 20165115 Exp3 免杀原理与实践
查看>>
【Android】学习记录<1> -- 初识ffmpeg
查看>>
定位页面元素的位置
查看>>