python2.7 - python变量作用域问题

查看:86
本文介绍了python2.7 - python变量作用域问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

import os

SYSTEMList = ["System", "SYSTEM", "system", "windows", "Windows", "WINDOWS"]
def getTheTargetDisk():
    """ 
    Get the scanner 
    return: the input string
    """
    input = raw_input("-->Disk: ")
    return input

def theLevelIndex(root):
    """ 
    Find the root's level
    root: string, the index you want to judge
    return: int, 0 for A, 1 for B
    """
    if os.path.isdir(root):
        for filepath in os.listdir(index):
            if  os.path.isfile (filepath):
                return 1
    return 0



root = getTheTargetDisk()
rootlist = os.listdir(root)
listA = []
listB = []
for dirpath in rootlist:
    for sysName in SYSTEMList:
        if sysName in dirpath:#Error:'dirpath' is not defined
            del dirpath
for dirroot in rootlist:
    if os.path.isdir(dirroot):
        if theLevelIndex(dirroot) == 0:
            listA.append(root + dirroot)
        else:
            listB.append(root + dirroot)
print listA
print listB

如上的代码,在运行至if sysName in dirpath时,显示dirpath未定义
请问下这是为什么?if中调用的dirpath不是在最外层的for循环中吗?

解决方案

for i in [1, 2, 3]:
    del i
    print i

del之后就把变量从当前作用域里删除了

这篇关于python2.7 - python变量作用域问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆