以下の python の例では、メソッドと属性が範囲外のように見えますが、まだ機能しています。何が起こっているのでしょうか?
for module in output:
a = 1
attributes=[]
methods=[]
for branch in module[2]:
for leaf in branch[2]:
if leaf[0]=="method":
methods.append(leaf[1])
if leaf[0]=="attribute":
attributes.append(leaf[1])
print methods
print attributes
print module[0]
print a
しかし、もう1レベルアウトデントすると、機能しなくなります
for filename in os.listdir("."):
print filename
fName, fExtension = os.path.splitext(filename)
print fName, fExtension
if fExtension == ".idl":
f = open(filename)
idl = f.read()
f.close()
output = parse(idl)
pprint.pprint(output)
root={}
for module in output:
a = 1
attributes=[]
methods=[]
for branch in module[2]:
for leaf in branch[2]:
if leaf[0]=="method":
methods.append(leaf[1])
if leaf[0]=="attribute":
attributes.append(leaf[1])
print methods
print module[0]
それは言う: NameError: name 'methods' is not defined 私はpython 2.7を使用しています