请参阅今天的旧线程:在封闭范围内分配错误之前避免引用的 Pythonic 方法是什么?
该帖子中的用户遇到了完全相同的问题,他想按照main
我和其他不嵌套函数的人的建议在另一个函数(在你的情况下)中定义一个函数!
没有必要在 Python 中使用嵌套函数,它只会增加无用的复杂性,不会给您带来任何真正的实际优势。
我会做:
def main ():
a_reader = open ('C:\\Users\\filexxx.csv','r')
fileName = a_reader.read()
a_reader.close()
return fileName
print(main())
或者
class main():
def __init__(self):
a_reader = open ('C:\\Users\\filexxx.csv','r')
self.fileName = a_reader.read()
a_reader.close()
def _print(self):
print(self.fileName)
a = main()
a._print()
将函数/类名定义为与默认 Python 函数/类相同绝不是一个好主意。print
作为其中之一。
但是,如果您真的想使用原始设置,这里有一个解决方案:
def main ():
a_reader = open ('C:\\Users\\filexxx.csv','r')
fileName = a_reader.read()
a_reader.close()
def _print():
print fileName
_print()
main()
哦,顺便说一句..带反斜杠的字符串应该被转义或者你需要使用r'..'
:)