码迷,mamicode.com
首页 > 其他好文 > 详细

继承一个类,然后返回获取子类中的所有方法并且不包含父类的

时间:2019-07-08 22:17:32      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:bsp   dict   elf   def   col   self   **kwargs   div   nbsp   

 一、子继承

class A(object):
    def __new__(cls, *args, **kwargs):
        # 1. 获取 继承 此类的函数中的所有方法
        now_dict = cls.__dict__.copy()

        # 2. 删除其他
        now_dict.pop("__module__", None)
        now_dict.pop("__doc__", None)

        # 3. 赋值变量
        cls.now_dict = now_dict

        # 4. 返回对象
        return super().__new__(cls, *args, **kwargs)

    def a(self):
        print(123)

    def b(self):
        print(456)


class B(A):
    name = 123
    act = 456


a = B()
print(a.now_dict)


# 结果
{‘name‘: 123, ‘act‘: 456}

 二、孙子继承

class A(object):
    def __new__(cls, *args, **kwargs):
        # 1. 获取 继承 此类的函数中的所有方法
        now_dict = cls.__dict__.copy()

        # 2. 删除其他
        now_dict.pop("__module__", None)
        now_dict.pop("__doc__", None)

        # 3. 赋值变量
        cls.now_dict = now_dict

        # 4. 返回对象
        return super().__new__(cls, *args, **kwargs)

    def a(self):
        print(123)

    def b(self):
        print(456)


class B(A):
    name = 123
    act = 456


class C(B):
    age = 22


a = C()
print(a.now_dict)

# 结果
{‘age‘: 22}

继承一个类,然后返回获取子类中的所有方法并且不包含父类的

标签:bsp   dict   elf   def   col   self   **kwargs   div   nbsp   

原文地址:https://www.cnblogs.com/dream4567/p/11154146.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!