Я писал следующее определение класса в Sublime Text для питонаОтступа ошибки в питоне в классе питона
class BPHmanager(object):
"""Class for BPHmanager"""
def makeNewProject(self, projname):
if os.path.exists(projname):
print "Directory of that name already exists in current directory."
sys.exit(2) # exit the program.
else:
os.mkdir(projname)
os.chdir(projname)
os.mkdir(".bph")
os.mkdir(".bph/deletes")
defaults = raw_input("Add default datatypes to project? Yy/Nn > ")
if defaults == 'Y' or defaults == 'y':
self.Datatypes = {"reads": [], "assemblies": [], "alignments":[], "annotations":[]}
self.MetadataDefs["reads"] = []
self.MetadataDefs["assemblies"] = []
self.MetadataDefs["alignments"] = []
self.MetadataDefs["annotations"] = []
def saveSettings(self):
settingsfile = open(".bph/bph.settingsfile", 'w')
settingsdict = {self.Organisms, self.Datatypes, self.MetadataDefs}
settingsfile.write(json.dumps(settingsdict, separators=(',',':')))
settingsfile.close()
print "Saved changes to .bph/bph.settingsfile"
def __init__(self, argv):
# and so on
По какой-то причине, если я импортировать этот файл, чтобы проверить его или скопировать и вставить в интерпретатор Я всегда получаю много ошибок отступа, начиная с:
def saveSettings(self):
File "<stdin>", line 1
def saveSettings(self):
^
IndentationError: unexpected indent
Но линия для функции saveSettings
начинается на том же уровне отступа как и предыдущая функция, так что я не могу понять, почему я получаю эту ошибку ,
Пробовали ли вы четыре отступы, вместо двух? –
Работает для меня. Пожалуйста, проверьте, чтобы вкладки не просочились в ваш файл. (Вы можете использовать что-то вроде 'tabnanny' для проверки или просто включать невидимые символы в Sublime). – nneonneo