python如何使内部类成为外部类的类型

时间:2016-11-13 01:40:58

标签: python python-2.7 class

我有嵌套类,因为它们紧密相关。

现在我想拥有以下类型的代码

class one(Some-other-type):
    ...
    // More functions here

    class two(one):
       // Some more functions here.

内部类“两个”类型应该是“一个”但如果我把它我得到一个错误。 另一种方法是不要像下面那样嵌套

class one(Some-other-type):
    ...
    // More functions here

class two(one):
    // Some more functions here.

但是当我导入模块时,我不希望可以访问“2”类。 我并不真正关心“one”提供的功能,但为了清晰的代码,它需要在它下面。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在构建类时,您无法引用该类。但是,您可以在自己的方法中引用一个类,因为在构造的类之后才会对方法体进行求值。

class one(object):
    @staticmethod
    def get_two():
        class two(one):
           pass
        return two()
    def f(self):
        print("I am %s" % type(self).__name__)

twof

继承one
>>> obj = one.get_two()
>>> obj.f()
"I am two"