我有一个返回变量的函数,以及另一个正在使用它的函数。在我的serializer
函数中,尽管flake8即将出现,但变量未定义。
我尝试将其添加为main
,并使用global var
将tox.ini
文件放置在与脚本相同的文件夹中,但这都没有注册。 A
有什么建议吗?以下代码块供参考。 ignore = F821
是元凶
new_folder
答案 0 :(得分:1)
第一个问题是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())