问题描述
我有一个处理文件夹的脚本。一些文件夹(例如其中的5%)根据其内容分配了特殊状态。我使用变量special = True
来存储此状态,以后需要使用if
语句进行评估,并且仅对具有此标记的文件夹执行额外的操作(其中95% (如果只是跳过操作)。
现在,我了解它的基本方式是:
if xxxx:
special = True #for these few folders
else:
special = False #for all other folders
...
if special == True:
[operation]...
现在我的问题是,为不需要此标记的95%的文件夹不必要地创建了变量;但是,我需要该变量存在(因此即使该值为False也必须创建该变量)才能进行求值,因为否则if语句将引发异常。因此,我改用以下解决方案:
if xxxx:
special = True #for these few folders
...
if 'special' in globals():
[operation]...
在这种情况下,在95%的情况下都不会创建不必要的变量,因为变量special
仅在首先需要标记的情况下才会存在于命名空间中。
这是一种好习惯还是这种愚蠢的做法,以这种方式避免创建变量的努力是过大的,会使代码彻头彻尾的恶化,可读性差,非Pythonic等?任何想法都值得赞赏。
解决方法
这太过分了,使代码彻头彻尾的恶化,可读性差,非Pythonic等。