@overrides 模块在 Python 中失败
@overrides module fails in Python
正在关注 this nice module I've been using for at least a year with no trouble, I am doing as the doc says:
使用 pip install overrides
安装
BaseSegmenter.py
from overrides import EnforceOverrides
class BaseSegmenter(EnforceOverrides):
def __init__(self):
pass
def segment_defects(self):
pass
DefectSegmenter.py
from defect_segmentation import BaseSegmenter
from overrides import overrides
class AutoencoderSegmenter(BaseSegmenter):
def __init__(self):
super().__init__()
@overrides
def segment_defects(self, inspected, warped, warp_mask):
pass
这给了我
Traceback (most recent call last):
File "C:/noam/autoencoder1/Main.py", line 10, in <module>
from defect_segmentation.DefectSegmenter import AutoencoderSegmenter
File "C:\noam\autoencoder1\defect_segmentation\DefectSegmenter.py", line 5, in <module>
class AutoencoderSegmenter(BaseSegmenter):
File "C:\noam\autoencoder1\defect_segmentation\DefectSegmenter.py", line 9, in AutoencoderSegmenter
@overrides
File "C:\noam\autoencoder1\venv\lib\site-packages\overrides\overrides.py", line 67, in overrides
raise AssertionError('No super class method found for "%s"' % method.__name__)
AssertionError: No super class method found for "segment_defects"
执行以下行时会发生这种情况:
from defect_segmentation.DefectSegmenter import AutoencoderSegmenter
我可能遗漏了一些基本的东西,但我的眼睛看到超级 class 确实有 segment_defects
...
请帮忙:)
问题出在DefectSegmenter.py
from defect_segmentation import BaseSegmenter
而不是正确的
from defect_segmentation.BaseSegmenter import BaseSegmenter
这是一个模块,而不是 class。这使得反射在 @overrides
模块中失败。
正在关注 this nice module I've been using for at least a year with no trouble, I am doing as the doc says:
使用 pip install overrides
BaseSegmenter.py
from overrides import EnforceOverrides
class BaseSegmenter(EnforceOverrides):
def __init__(self):
pass
def segment_defects(self):
pass
DefectSegmenter.py
from defect_segmentation import BaseSegmenter
from overrides import overrides
class AutoencoderSegmenter(BaseSegmenter):
def __init__(self):
super().__init__()
@overrides
def segment_defects(self, inspected, warped, warp_mask):
pass
这给了我
Traceback (most recent call last):
File "C:/noam/autoencoder1/Main.py", line 10, in <module>
from defect_segmentation.DefectSegmenter import AutoencoderSegmenter
File "C:\noam\autoencoder1\defect_segmentation\DefectSegmenter.py", line 5, in <module>
class AutoencoderSegmenter(BaseSegmenter):
File "C:\noam\autoencoder1\defect_segmentation\DefectSegmenter.py", line 9, in AutoencoderSegmenter
@overrides
File "C:\noam\autoencoder1\venv\lib\site-packages\overrides\overrides.py", line 67, in overrides
raise AssertionError('No super class method found for "%s"' % method.__name__)
AssertionError: No super class method found for "segment_defects"
执行以下行时会发生这种情况:
from defect_segmentation.DefectSegmenter import AutoencoderSegmenter
我可能遗漏了一些基本的东西,但我的眼睛看到超级 class 确实有 segment_defects
...
请帮忙:)
问题出在DefectSegmenter.py
from defect_segmentation import BaseSegmenter
而不是正确的
from defect_segmentation.BaseSegmenter import BaseSegmenter
这是一个模块,而不是 class。这使得反射在 @overrides
模块中失败。