Python使用动态对象变量名

有人说把php当作瑞士军刀的话,那么python就是牛刀了。这话果然没错!今天的需求看起来有点复杂,大概解释一下这个标题:比如你需要打开几个文件,但是这个操作在循环里,所以不可能给个固定变量当成打开的对象(这里应该叫句柄,不过既然python当成对象就这么叫吧)。那么我就需要file1=open()/file2=open()/file3=open()像这样的名字当对象名,能实现么?废话不能实现我还写这篇文章干嘛!我们需要用到locals这个函数,由于我讨厌长文废话,几段话无法解释的这个函数留到末尾的相关链接吧。先上代码,刚才那个需求的示例:

搞定,很简单吧?假设打开的文件内容=上面的i值,看看效果:

很神奇吧?python果然是牛刀。接下来再弄点别的,如果我要动态得调用fileX该怎么处理?使用exec即可,exec函数用来执行储存在字符串或文件中的Python语句。上代码:

locals()的相关链接:http://woodpecker.org.cn/diveintopython/html_processing/locals_and_globals.html

Python使用动态对象变量名 没有评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注