{"id":1562,"date":"2014-11-09T13:05:39","date_gmt":"2014-11-09T13:05:39","guid":{"rendered":"http:\/\/ixyzero.com\/blog\/?p=1562"},"modified":"2014-11-09T13:05:39","modified_gmt":"2014-11-09T13:05:39","slug":"python%e7%9a%84locals%e4%b8%8eglobals","status":"publish","type":"post","link":"https:\/\/ixyzero.com\/blog\/archives\/1562.html","title":{"rendered":"Python\u7684locals()\u4e0eglobals()"},"content":{"rendered":"<p><strong>locals()<\/strong><strong>\u548c<\/strong><strong>globals()<\/strong><strong>\u5728\u4f5c\u7528\u57df\u4e0a\u7684\u533a\u522b<\/strong><\/p>\n<p>\u6b63\u5982\u5b83\u4eec\u7684\u547d\u540d\uff0clocals()\u8fd4\u56de\u7684\u662f\u5c40\u90e8\u53d8\u91cf\uff0cglobals()\u8fd4\u56de\u7684\u662f\u5168\u5c40\u53d8\u91cf\u3002<\/p>\n<p>\u8fd9\u4e2a\u5dee\u5f02\u5728\u51fd\u6570\u4e2d\u5c31\u6bd4\u8f83\u5bb9\u6613\u53d1\u73b0\u4e86\uff0c\u5efa\u8bae\u81ea\u5df1\u7f16\u5199\u51fd\u6570\u8bd5\u8bd5\uff1a<\/p>\n<pre class=\"lang:default decode:true \">&gt;&gt;&gt; def a():\n...     b=1\n...     print locals(), globals()\n...\n&gt;&gt;&gt; a()\n{'b': 1} {'__builtins__': &lt;module '__builtin__' (built-in)&gt;, '__name__': '__main__', '__doc__': None, 'a': &lt;function a at 0x01A8A6B0&gt;, '__package__': None}<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>locals()<\/strong><strong>\u548c<\/strong><strong>globals()<\/strong><strong>\u5728\u8bbf\u95ee\u6027\u4e0a\u7684\u533a\u522b<\/strong><\/p>\n<p>\u6211\u4eec\u5148\u6765\u770b\u4e00\u6bb5\u7b80\u5355\u7684\u811a\u672c\u5427\uff1a<\/p>\n<pre class=\"lang:default decode:true\">&gt;&gt;&gt; a=1\n&gt;&gt;&gt; b=globals()\n&gt;&gt;&gt; print globals()\n{'a': 1, 'b': {...}, '__builtins__': &lt;module '__builtin__' (built-in)&gt;, '__package__': None, '__name__': '__main__', '__doc__': None}\n&gt;&gt;&gt; a=2\n&gt;&gt;&gt; print b\n{'a': 2, 'b': {...}, '__builtins__': &lt;module '__builtin__' (built-in)&gt;, '__package__': None, '__name__': '__main__', '__doc__': None}\n&gt;&gt;&gt; b['a']=3\n&gt;&gt;&gt; print globals()\n{'a': 3, 'b': {...}, '__builtins__': &lt;module '__builtin__' (built-in)&gt;, '__package__': None, '__name__': '__main__', '__doc__': None}\n&gt;&gt;&gt; print a<\/pre>\n<p>\u53ef\u4ee5\u770b\u51faglobals()\u8fd4\u56de\u7684\u662f\u5f53\u524d\u5168\u5c40\u53d8\u91cf\u7684\u5f15\u7528, \u800c\u4e14\u53ef\u4ee5\u901a\u8fc7\u4fee\u6539b[&#8216;a&#8217;]\u6765\u6539\u53d8\u53d8\u91cfa\u7684\u503c.<\/p>\n<p>\u6240\u4ee5<strong>globals()<\/strong><strong>\u7684\u8fd4\u56de\u503c\u662f\u53ef\u8bfb\u53ef\u5199\u7684\u3002<\/strong><\/p>\n<p>\u8ba9\u6211\u4eec\u518d\u6765\u770b\u4e00\u6bb5\u811a\u672c\uff1a<\/p>\n<pre class=\"lang:default decode:true\">&gt;&gt;&gt; def a():\n...     b=1\n...     c=locals()\n...     print c\n...     b=2\n...     print locals()\n...     print c\n...     c['b']=3\n...     print locals()\n...     print b\n...     locals()['b']=3\n...     print locals()\n...     print b\n...     print c\n...\n&gt;&gt;&gt; a()\n{'b': 1}\n{'c': {...}, 'b': 2}\n{'c': {...}, 'b': 2}\n{'c': {...}, 'b': 2}\n{'c': {...}, 'b': 2}\n{'c': {...}, 'b': 2}<\/pre>\n<p>\u5728locals()\u4e2d\u8bd5\u56fe\u4fee\u6539b\u7684\u503c\uff0c\u5931\u8d25\u4e86\u3002<\/p>\n<p>\u5728locals()\u7684\u5f15\u7528\u53d8\u91cfc\u4e2d\u4fee\u6539b\u7684\u503c\uff0c\u5931\u8d25\u4e86\u3002<\/p>\n<p>\u53ef\u89c1<strong>locals()<\/strong><strong>\u867d\u7136\u8fd4\u56de\u7684\u548c<\/strong><strong>globals()<\/strong><strong>\u4e00\u6837\u90fd\u662f\u5b57\u5178<\/strong><strong>\uff0c<\/strong><strong>\u4f46\u5176\u8bbf\u95ee\u6027\u662f\u4e0d\u540c\u7684\u3002<\/strong><\/p>\n<p><strong>globals()<\/strong><strong>\u53ef\u4ee5\u76f4\u63a5\u4fee\u6539\u5176\u4e2d\u5bf9\u5e94\u952e\u7684\u503c<\/strong><strong>\uff0c<\/strong><strong>\u800c<\/strong><strong>locals()<\/strong><strong>\u505a\u4e0d\u5230\u3002<\/strong><\/p>\n<p>&nbsp;<\/p>\n<h6>Python locals()\u4e0eglobals()\u7684\u533a\u522b<\/h6>\n<ul>\n<li><a href=\"http:\/\/www.blackglory.me\/the-python-locals-and-globals-of-the-difference-between\/\" target=\"_blank\">http:\/\/www.blackglory.me\/the-python-locals-and-globals-of-the-difference-between\/<\/a><\/li>\n<li><a href=\"https:\/\/docs.python.org\/2\/library\/functions.html#locals\" target=\"_blank\">https:\/\/docs.python.org\/2\/library\/functions.html#locals<\/a><\/li>\n<li><a href=\"https:\/\/docs.python.org\/2\/library\/functions.html#globals\" target=\"_blank\">https:\/\/docs.python.org\/2\/library\/functions.html#globals<\/a><\/li>\n<li><a href=\"http:\/\/www.diveintopython.net\/html_processing\/locals_and_globals.html\" target=\"_blank\">8.5.\u00a0locals and globals<\/a><\/li>\n<li><a href=\"http:\/\/blog.csdn.net\/scelong\/article\/details\/6977867\" target=\"_blank\">Python\u4e24\u4e2a\u5185\u7f6e\u51fd\u6570\u2014\u2014locals \u548cglobals (\u5b66\u4e60\u7b14\u8bb0)<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h6><strong>\u5c06\u6574\u578b\u6570\u8f6c\u6362\u4e3a<\/strong><strong>IP<\/strong><strong>\u5730\u5740<\/strong><\/h6>\n<pre class=\"lang:default decode:true \">def Int2IP(ipnum):\n\u00a0\u00a0\u00a0 o1 = int(ipnum \/ 16777216) % 256\n\u00a0\u00a0\u00a0 o2 = int(ipnum \/ 65536) % 256\n\u00a0\u00a0\u00a0 o3 = int(ipnum \/ 256) % 256\n\u00a0\u00a0\u00a0 o4 = int(ipnum) % 256\n    return '%(o1)s.%(o2)s.%(o3)s.%(o4)s' % locals()<\/pre>\n<p>&nbsp;<\/p>\n<h6>\u53c2\u8003\u94fe\u63a5\uff1a<\/h6>\n<ul>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/1550479\/python-is-using-vars-locals-a-good-practice\" target=\"_blank\">string &#8211; Python: is using &#8220;..%(var)s..&#8221; % locals() a good practice? &#8211; Stack Overflow<\/a><\/li>\n<li><a href=\"http:\/\/search.aol.com\/aol\/search?q=Python+locals\" target=\"_blank\">http:\/\/search.aol.com\/aol\/search?q=Python+locals<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>locals()\u548cglobals()\u5728\u4f5c\u7528\u57df\u4e0a\u7684\u533a\u522b \u6b63\u5982\u5b83\u4eec\u7684\u547d\u540d\uff0clocals()\u8fd4\u56de\u7684\u662f\u5c40\u90e8\u53d8\u91cf\uff0cglo [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[390,391,8],"class_list":["post-1562","post","type-post","status-publish","format-standard","hentry","category-programing","tag-globals","tag-locals","tag-python"],"views":1880,"_links":{"self":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/1562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/comments?post=1562"}],"version-history":[{"count":0,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/1562\/revisions"}],"wp:attachment":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/media?parent=1562"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/categories?post=1562"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/tags?post=1562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}