python 类的继承

1.python继承父类,子类可以调用父类的方法,也可以调用自己的方法。

class Person(object):   # 定义一个父类
 
    def talk(self):    # 父类中的方法
        print("person is talking....")   
 
 
class Chinese(Person):    # 定义一个子类, 继承Person类
 
    def walk(self):      # 在子类中定义其自身的方法
        print('is walking...')
 
c = Chinese()
c.talk()      # 调用继承的Person类的方法
c.walk()     # 调用本身的方法

2.构造函数的继承,也就是在父类需要实际参数时,子类对父类继承,需要继承父类的__init__-----构造方法先,方式主要有两种:

  ·经典类的写法: 父类名称.__init__(self,参数1,参数2,...)

  ·新式类的写法:super(子类,self).__init__(参数1,参数2,....)

class Person(object):
 
    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.weight = 'weight'
 
    def talk(self):
        print("person is talking....")
 
 
class Chinese(Person):
 
    def __init__(self, name, age, language):  # 先继承,在重构
        Person.__init__(self, name, age)  #继承父类的构造方法,也可以写成:super(Chinese,self).__init__(name,age)
        self.language = language    # 定义类的本身属性
 
    def walk(self):
        print('is walking...')
 
 
class American(Person):
    pass
 
if __name__ == "__main__":
    c = Chinese('bigberg', 22, 'Chinese')
    c.walk()
    c.talk()

需要注意:要先继承才能调用相关的属性,要继承类必须继承父类的构造方法。同样,因为继承使用方法重写的属性,所以可以

重写子类的构造方法。如果是父类构造方法中只有私有属性,子类不需要继承也无法继承,但是可以通过函数调用来使用父类的属性。

 

3.类中的静态变量

class Person(object):  # 定义一个父类
    name = 123
    def talk(self,age):  # 父类中的方法
        print("person is talking....")
        self.age = age
        print self.name
        print age
    def work(self):
        print self.age
class Chinese(Person):  # 定义一个子类, 继承Person类

    def walk(self):  # 在子类中定义其自身的方法
        print('is walking...')


class Student:
    p = Person
    name = p.name              #其实这相当于给Student创建了一个name的属性,不过他是从Person类中实例出来的

    def talk(self):
        print self.name  
c = Chinese()
c.talk(2)  # 调用继承的Person类的方法
c.walk()
c.work()
               

s = Student()

s.talk()

注意:其中的name实际上相当于Person类的属性,可以在该类中调用,前面需要跟self参数,如果不是继承的类,可以在那个类中先创建Person的类实例,然后当成自己的属性,在方法中调用。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值