我遇到这类问题attributeError: module 'ResponseLayer' has no attribute 'RS'
。我是一个初学者,刚开始从头开始学习python。我在这里需要了解什么?我编码错了吗?
class ResponseLayer:
def RS(self,_width, _height, _step, _filter):
self.width = _width
self.height = _height
self.step = _step
self.filterr = _filter
class FastHessian:
import ResponseLayer
def buildResponseMap():
responseMap = []
w = int(img.Width / init)
h = int(img.Height / init)
s = int(init)
if (octaves >=1):
responseMap.append(RS(w, h, s, 9))
responseMap.append(RS(w, h, s, 15))
responseMap.append(RS(w, h, s, 21))
responseMap.append(RS(w, h, s, 27))
答案 0 :(得分:0)
Ianny,
如果您显示的所有代码都保存在同一文件中,则不必导入ResponseLayer
。
我相信您正在将ResponseLayer
的唯一实例添加到响应映射。
如果我是对的,那么您应该将RS
类上的ResponseLayer
方法更改为实例创建方法(Python中的init
)。
因此您只需编写ResponseLayer(20, 30, 2, 4)
即可创建示例响应层对象。
这是我的意思:
class ResponseLayer:
def __init__(self, width, height, step, _filter):
self.width = width
self.height = height
self.step = step
self._filter = _filter
class FastHessian:
def buildResponseMap():
responseMap = []
w = int(img.Width / init)
h = int(img.Height / init)
s = int(init)
if (octaves >= 1):
responseMap.append(ResponseLayer(w, h, s, 9))
responseMap.append(ResponseLayer(w, h, s, 15))
responseMap.append(ResponseLayer(w, h, s, 21))
responseMap.append(ResponseLayer(w, h, s, 27))
我了解您是Python初学者。
欢迎来到Python的世界。
我喜欢帮助初学者提高自己的力量。就像提到的@chepner一样,您的代码对于Java来说也看起来像Java。我很想帮助您重写它,使其更具Python风格。随时在StackOverflow上与我聊天。