python-类的继承

#conding: utf-8
class Programer(object):       #定义了一个Programer类
    hobby = "Play Computer"                 #在类里面直接定义一个属性hobby

    def __init__(self, name, age, weight):   #在构造函数里面定义了三个属性
        self.name = name
        self._age = age
        self.__weight = weight

    @classmethod               #方法的装饰器;调用的时候直接用类名,而不是某个对象
    def get_hobby(cls):
        return cls.hobby

    @property                  #方法的装饰器;像访问属性一样调用方法
    def get_weight(self):
        return self.__weight

    def self_introduction(self):
        print('My name is %s \nI am %s years old\n' % (self.name, self._age))


#类的继承
class BackendProgramer(Programer):         #定义一个BackendProgramer类,继承了Programer类
    '''
    对构造函数进行了修改,多出一个language属性,
    使用super调用了BackendProgramer父类的构造函数,
    将language属性进行了赋值
    '''
    def __init__(self,name, age, weight, language):                 #构造函数多出一个language属性
        super(BackendProgramer, self).__init__(name, age, weight)   #使用super调用了BackendProgramer父类的构造函数
        self.language = language                                    #将language属性进行了赋值

if __name__ == '__main__':
    programer = BackendProgramer('jodie', 25, 85, 'python')    #将BackendProgramer这个类进行实例化
    print(dir(programer))                      #将BackendProgramer类的属性打印一下
    print(programer.__dict__)                  #输出这个对象在构造函数里所赋予的值的属性

    # 判断programer的种类,可以看到打印结果为BackendProgramer类
    print(type(programer))

    #判断一下这个对象判断类型的时候是不是会被认为它的父类就是Programer这个类
    #一个对象,它是从属于它的父类的,在判断类型的时候,它会被认为自己所在类的父类;所以打印结果为:True
    print(isinstance(programer, Programer))   




--------------------------------------
运行后的打印结果:
D:\Jodie2019\venv\Scripts\python.exe D:/Jodie2019/study/study6类的继承.py
['_Programer__weight', '__class__', '__delattr__', '__dict__', 
'__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', 
'__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', 
'__lt__', '__module__', '__ne__', '__new__', '__reduce__', 
'__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', 
'__subclasshook__', '__weakref__', '_age', 'get_hobby', 'get_weight', 
'hobby', 'language', 'name', 'self_introduction']

{'name': 'jodie', '_age': 25, '_Programer__weight': 85, 'language': 'python'}

<class '__main__.BackendProgramer'>

True

Process finished with exit code 0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值