【问题标题】:How to define dynamically, that some method of a class already exists in its base class? (Python 2.7)如何动态定义一个类的某些方法已经存在于其基类中? (Python 2.7)
【发布时间】:2015-01-30 23:33:48
【问题描述】:

我需要定义 ChildClass 的某些方法来覆盖 BaseClass 中已经存在的方法。 (Python 2.7)

class BaseClass(object):
    def method(self):
        pass

class ChildClass1(BaseClass):
    def method(self):
        pass

class ChildClass2(BaseClass):
    pass

问题是,如果我得到 ChildClass1 和 ChildClass2 的方法列表(例如,使用 dir() 指令),它们的结果是相同的,因为它们都继承自 BaseClass。 有什么方法可以动态定义这些案例之间的区别吗?

【问题讨论】:

  • ChildClassN.method == BaseClass.method(请注意,这只适用于类,而不适用于实例)?

标签: python-2.7 metaclass


【解决方案1】:

嗯,我找到了解决方案。所需信息驻留在任何类的 __dict__ 成员中,因此即使某些 SonClass 继承自其他一些 BaseClass,唯一 SonClass 的成员将出现在 __dict__ 成员中,而不是从 FatherClass 继承的成员!

【讨论】:

    猜你喜欢
    • 2011-12-30
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多