python super() 用法与注意事项
实例:
#! -*- encoding:utf-8 -*- class People(object): def __init__(self, name ='haha', age = 0): self.name = name self.age = age def setName(self, name): self.name = name return self def __setAge(self, age): self.age = age return self def getName(self): return self.name def getAge(self): return self.age setAge = __setAge class Man(People): def __init__(self, name = '', age = 0): super(Man, self).__init__(name, age) def setSex(self, sex): self.sex = sex return self def getSex(self): return self.sex a = People('Kevin') print(a.name) print(a.getAge()) name = a.setName('Kevin').setAge(22).getAge() print(name) b = Man('tom', 28) print(b.name) print(b.setSex('male').getSex())
python 2.7.6
错误:TypeError: must be type, not classobj
因为在父类中没有使用
class Base(object): def __init__():
省略了 object
就会报错。
注意: super()
中的参数是如何调用的
super
还可以使用如下语法替代:
def __init__(self, name = '', age = 0): super(type(self), self).__init__(name, age)
或者:
def __init__(self, name = '', age = 0): super(self.__class__, self).__init__(name, age)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

上一篇: MySQL 数据库优化
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论