我在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
。是否需要这种行为?
答案 0 :(得分:1)
也许您的pythonpath包含SB及其父目录。
确保只包含相应的目录。