我已经搜索了所有相关的这个问题,但它不满足我的问题。你知道吗
你知道吗基本处理程序.py你知道吗
class BaseHandler(object):
def __init__(self, rHandler, path, param):
self._rHandler = rHandler
self._server = self._rHandler.server
self._path = path
self._param = param
def _getElement(self, name):
return name + "append"
你知道吗我的班级.py你知道吗
class MyClass(BaseHandler.BaseHandler):
def getA(self):
print "Some info"
def getB(self):
el = self._getElement("T") #baseclass method
print ebl
我想从下面的班级打电话给getB。你知道吗
你知道吗阅读.py你知道吗
import MyClass
class RThread(object):
def someMethod(self):
clr = MyClass.MyClass
clr.getB()
我得到以下错误:
TypeError: unbound method getB() must be called with MyClass instance as first argument (got nothing instead)
当我尝试以下操作时:
clr = MyClass.MyClass()
我得到以下错误:
init() takes exactly 4 arguments (1 given)
所以请帮助我如何从不同的类调用这个方法。你知道吗
你需要实例化这个类以便调用它的方法。你知道吗
如果希望方法可以从类调用,则需要使用
@staticmethod
或@classmethod
但是,您使用的是需要实例的
self.
表示法。因此,还需要用@staticmethod
标记_getElement
方法。静态方法无权访问父类。您可以使用@classmethod
修饰符来完成此操作。你知道吗您没有正确调用该方法;您需要创建一个对象。这就是你创建一个对象的方式,这就是你正在做的,只是你没有传递足够的参数。你知道吗
因为
MyClass
从BaseHandler
继承,并且您没有重写它的构造函数,所以您使用的是来自BaseHandler
的构造函数,它有四个参数,其中一个是self
。你知道吗所以,试试这个:
相关问题 更多 >
编程相关推荐