Python 3.x 我有两个班(A和B),我';I’我试图使用B中a中的方法。a中的方法只是查找列表中某项的索引:

Python 3.x 我有两个班(A和B),我';I’我试图使用B中a中的方法。a中的方法只是查找列表中某项的索引:,python-3.x,inheritance,multiple-inheritance,Python 3.x,Inheritance,Multiple Inheritance,我有三个类(A、I和B),其中A是从I继承的。我试图使用一个方法,从A中,在B中。A中的方法,只是在列表中查找项的索引。我有: 文件1: class I: def__init__(self,s): self.s = s class A(I): def __init__(self,n): self.n = n self.lst = [] for i in range(n): self.lst.append([]) ..... de

我有三个类(A、I和B),其中A是从I继承的。我试图使用一个方法,从A中,在B中。A中的方法,只是在列表中查找项的索引。我有:

文件1:

class I:
  def__init__(self,s):
     self.s = s

class A(I):

  def __init__(self,n):
    self.n = n
    self.lst = []
    for i in range(n):
      self.lst.append([])
  .....

  def get_item_location(self, item):
    for index in range(len(self.lst)):
        if item in self.lst[index]:
            return index 
文件2:

from A import classA
class B:
  def __init__(self,n):
     self._model = A(n)

  def something(self, dest_point):
     print (self._model.get_item_location(self._item))

其中self.\u项的类型是Class I,现在它为我打印None,我希望它返回列表的索引号,其中该项在列表中,该项在列表中。当我使用get_item_location函数时,它会给我一个整数,但当类B使用它时,它不会返回任何值。我相信这与我自己有关,但我还没有想出任何解决办法。如果有人能帮助我,我将不胜感激。

请帮个忙。您的代码中缺少太多内容,我们无法猜测发生了什么。什么是B类的
self.\u model
?它是如何创建的?假设它是一个
实例,那么它的内部列表在哪里填充。如何分配
self.\u项目
?你是如何测试代码的,以至于你认为class
A
可以独立工作?我为自己编辑了代码。类A本身不工作,而类B从A获取这些方法并使用它们。我正在尽力简化这个问题,但似乎不可能!lst中的内部列表由类A中的add方法填充,B使用该方法实现列表中的项。基本上,get_item_location应该返回项目所在列表的索引。假设:lst=[[item,a,b,c],[a],[b],[b],那么get\u item\u location(item)应该返回0。可能您保存为
self的对象没有被放入内部列表中,因此没有可以找到它的索引。我们无法解释原因,因为您的问题中不包括保存项目的代码和填充列表的代码。(由于大写
,您显示的类也给出了语法错误,但即使修复了该问题,它们也没有做任何有用的事情来说明您的问题。)