我用python定义了一个抽象基类:
class calculator:
__metaclass__ = ABCMeta
@abstractmethod
def __init__(self, fileName):
path = './cartesians/'
onlyFiles = [f for f in os.listdir(path) if os.path.isfile(os.path.join(path, f))]
for elem in list(onlyFiles):
test = elem.split('.')[0]
if test != fileName.split('.')[0]:
onlyFiles.remove(elem)
self.onlyFiles = onlyFiles
self.onlyFiles.sort()
@abstractmethod
def optimize(self):
pass
mopac类继承自计算器类:
^{pr2}$在主.py,我有:
from mopac import *
calc = mopac(inFile)
calc.optimize()
当我运行代码时,它告诉我:
File "main.py", line 50, in main
calc.optimize()
File "path/mopac.py", line 24, in optimize
print self.test
NameError: global name 'self' is not defined
我不明白为什么这里把自我当作一个变量/属性。有人能帮忙吗?如果我去掉“打印”自我测试,那么它会给我同样的错误“self is not defined”与仅限self.only文件. 在
在Python中,应该将
self
指定为定义的第一个形式参数。在您的代码中,calculator
是您的第一个形式参数,因此当它作为对象/实例方法调用时,它接受实例的值,并且没有可访问的形式参数self
(导致报告的语法错误):在本例中,您正在将“self”变量重命名为“calculator”。将其更改为self或将self重命名为calculator。在
More info
Other that may help you
相关问题 更多 >
编程相关推荐