Первая проблема заключается в том, что createDestination
никогда не определяет атрибут self.new_folder
, только локальная переменная new_folder
.Отступ также отключен, так как вы хотите вернуть new_folder
независимо от того, нужно ли вам было сначала его создать.
def createDestination(self):
'''
split the src variable for machine type
and create a folder with 'Evo' - machine
'''
s = src.split('\\')
new_folder = (dst + '\\Evo ' + s[-1])
if not os.path.exists(new_folder):
os.makedirs(new_folder)
return new_folder # not self.new_folder
Во-вторых, вы никогда не присваивали возвращаемое значение createDestination
какому-либо имени, чтобывы можете передать его copyPrograms
в качестве аргумента.
def main():
new_folder = createDestination()
copyPrograms(new_folder)
Имена имеют область видимости, а переменная с именем new_folder
внутри createDestination
отличается от переменной с тем же именем в main
.Как следствие, нет необходимости использовать одно и то же имя;следующее определение main
работает так же хорошо:
def main():
d = createDestination()
copyPrograms(d)
и вам даже не нужно для именования возвращаемого значения;Вы можете передать его как
def main():
copyPrograms(createDestination())