从不同的导入创建相同类的两个对象使它们看起来像不同的类

时间:2017-04-10 15:56:19

标签: python oop python-import

我在Python中有以下文件:

  • $numbers = explode(',', $string); array_filter($numbers, function ($n) use ($numberToRemove) { return $n != $numberToRemove; }); $string = implode(',', $numbers);

    SB/__init__.py
  • from .interval import *

    SB/interval.py

如果我从IPython shell或Jupyter执行class Interval: blablabla # Do stuff with intervals def __eq__(self, other): # Do comparison def __lt__(self, other): # Do comparison def __le__(self, other): # Do comparison def __gt__(self, other): # Do comparison def __ge__(self, other): # Do comparison def interval_from_file(filename): blablabla # Read the file, etc result = [] for l in lines: fields = l.split('\t') ... # Validate the fields result.append(Interval(fields)) return result 并使用import SB加载一些数据,我会得到一个Interval对象列表。但是,如果我然后用SB.interval_from_file手动创建一个Interval对象,我无法将该对象与列表中的任何其他对象进行比较。我得到了

SB.Interval

知道发生了什么事吗?

编辑:如果我打印对象的类型,列表中的那些(所以来自TypeError: '<' not supported between instances of 'Interval' and 'Interval'的类型为SB.interval_from_file而对象是在IPython shell中创建的SB.interval.Interval的类型为SB.Interval。是否需要这种行为?

1 个答案:

答案 0 :(得分:1)

也许您的pythonpath包含SB及其父目录。

确保只包含相应的目录。