在python的超类方法中包含子类项

2024-09-20 00:41:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我想要如下的东西:

class superclass:
    def __init__(self):
        "blahblah"

    def some_method(self):
        variable = subclass() #This is a subclass of this superclass
        "do stuff with variable"

Edit2:我在不同的文件中定义了这两个类。这就是我遇到的问题:

  • 当我将超类导入子类文件时,它无法导入超类,因为在没有定义子类的情况下无法定义超类;如果我尝试将子类导入到超类文件中,它也无法这样做,因为在没有定义超类的情况下无法定义子类。你知道吗

有人知道怎么做吗?你知道吗

Edit3:我之所以需要在方法中使用这个子类而不是超类实例,是因为在定义其中一个实例时,它在大小为256的数组中被分配了一个空槽。子类可以被删除以释放其中一个插槽,然后不同的子类可以占用同一个插槽—但是,超类的对象不能占用以前由子类占用的插槽。你知道吗

总的来说,它是这样设置的:

  1. 有两个布尔数组AvailableSlots和AvailableSlots2,大小为256,每个数组的初始索引都设置为True。

  2. 定义超类时,它会查找AvailableSlots2中的第一个真索引,然后将AvailableSlots[index]设置为False,将AvailableSlots2[index]设置为False。

  3. 定义子类时,它会查找AvailableSlots中的第一个真索引,然后将AvailableSlots[index]设置为False,将AvailableSlots2[index]设置为False。

  4. 当一个子类被销毁时,它只将AvailableSlots[index]设置为True,而将AbailableSlots2[index]设置为False。这使得下次我定义一个子类时,它会占用这个时隙,但是如果我定义一个超类,它会跳过这个时隙。


Tags: 文件selffalseindex定义def情况数组