{"id":1601,"date":"2014-11-15T16:09:46","date_gmt":"2014-11-15T16:09:46","guid":{"rendered":"http:\/\/ixyzero.com\/blog\/?p=1601"},"modified":"2014-11-15T16:09:46","modified_gmt":"2014-11-15T16:09:46","slug":"python%e7%9a%84%e4%b8%80%e4%ba%9b%e9%9a%90%e8%97%8f%e7%89%b9%e6%80%a7","status":"publish","type":"post","link":"https:\/\/ixyzero.com\/blog\/archives\/1601.html","title":{"rendered":"Python\u7684\u4e00\u4e9b\u9690\u85cf\u7279\u6027"},"content":{"rendered":"<p>\u5728Stackoverflow\u4e0a\u770b\u5230\u7684\u4e00\u5219\u5c0f\u6280\u5de7\uff1a<a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python\" target=\"_blank\">Hidden features of Python<\/a>\uff0c\u4e0e\u4e4b\u7c7b\u4f3c\u7684\u8fd8\u6709 C\/C#\/Java\/Javascript\/Perl\/Shell \u7b49\u8bed\u8a00\uff0c\u503c\u5f97\u53bb\u5b66\u4e60\u5b66\u4e60\uff0c\u4ee5\u5199\u51fa\u66f4\u4f18\u7f8e\u7684\u4ee3\u7801\uff08\u4e0d\u77e5\u9053\u8fd9\u4e2a\u4f1a\u88ab\u4f1a\u88ab\u7b11\u8bdd\u592a\u5c4c\u4e1d\u4e86\u2026\u2026\uff09<\/p>\n<p>What are the lesser-known but useful features of the Python programming language?<\/p>\n<ul>\n<li>Try to limit answers to Python core.<\/li>\n<li>One feature per answer.<\/li>\n<li>Give an example and short description of the feature, not just a link to documentation.<\/li>\n<li>Label the feature using a title as the first line.<\/li>\n<\/ul>\n<h2>Quick links to answers:<\/h2>\n<ul>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#111176\" target=\"_blank\">Argument Unpacking<\/a>\u00a0 #\u51fd\u6570\u53c2\u6570\u89e3\u5305<\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#112303\" target=\"_blank\">Braces<\/a>\u00a0 #\u5f88\u7f8e\u597d\u7684\u613f\u671b\uff0c\u4f46\u662f\u6ca1\u6709import\u6210\u529f<\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#101945\" target=\"_blank\">Chaining Comparison Operators<\/a>\u00a0 #\u633a\u597d\u7684\uff01<\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#101447\" target=\"_blank\">Decorators<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#113198\" target=\"_blank\">Default Argument Gotchas \/ Dangers of Mutable Default arguments<\/a>\u00a0 #\u5f88\u597d\u7684\u5efa\u8bae\uff01<\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#102062\" target=\"_blank\">Descriptors<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#111970\" target=\"_blank\">Dictionary default <code>.get<\/code> value<\/a>\u00a0 #\u633a\u597d\u7684\uff01<\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#102065\" target=\"_blank\">Docstring Tests<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python\/112316#112316\" target=\"_blank\">Ellipsis Slicing Syntax<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#117116\" target=\"_blank\">Enumeration<\/a>\u00a0 #\u5173\u4e8eenumerate\u6709\u51e0\u4e2atips<\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#114420\" target=\"_blank\">For\/else<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#102202\" target=\"_blank\">Function as iter() argument<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#101310\" target=\"_blank\">Generator expressions<\/a>\u00a0 #\u5217\u8868\u63a8\u5bfc\u5f0f<\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#101276\" target=\"_blank\"><code>import this<\/code><\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#102037\" target=\"_blank\">In Place Value Swapping<\/a>\u00a0 #\u7ecf\u5178<\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#101840\" target=\"_blank\">List stepping<\/a>\u00a0 #Python\u7684list\u5207\u7247<\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#112286\" target=\"_blank\"><code>__missing__<\/code> items<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#101537\" target=\"_blank\">Multi-line Regex<\/a>\u00a0 #\u53ef\u8bfb\u6027\u8f83\u597d<\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#113164\" target=\"_blank\">Named string formatting<\/a>\u00a0 #\u547d\u540d\u683c\u5f0f\u5316-\u633a\u597d\u7684<\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#101549\" target=\"_blank\">Nested list\/generator comprehensions<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#108297\" target=\"_blank\">New types at runtime<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#113833\" target=\"_blank\"><code>.pth<\/code> files<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#1024693\" target=\"_blank\">ROT13 Encoding<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#143636\" target=\"_blank\">Regex Debugging<\/a>\u00a0 #\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u8c03\u8bd5<\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#101739\" target=\"_blank\">Sending to Generators<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#168270\" target=\"_blank\">Tab Completion in Interactive Interpreter<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#116480\" target=\"_blank\">Ternary Expression<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#114157\" target=\"_blank\"><code>try\/except\/else<\/code><\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#3267903\" target=\"_blank\">Unpacking+<code>print()<\/code> function<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python#109182\" target=\"_blank\"><code>with<\/code> statement<\/a>\u00a0 #\u63a8\u8350\u4f7f\u7528<\/li>\n<\/ul>\n<p>\u8fd8\u6709\u4e00\u4e9b\u6211\u89c9\u5f97\u4e0d\u9519\u7684\u6709\uff1a<\/p>\n<ul>\n<li>\u5b57\u7b26\u4e32\u67e5\u627e<\/li>\n<li>\u590d\u6742\u7684\u5217\u8868\u63a8\u5bfc\u5f0f<\/li>\n<li>\u5185\u5efa\u7684\u5404\u79cd\u7f16\u89e3\u7801\u65b9\u6cd5<\/li>\n<li>\u77e9\u9635\u8f6c\u7f6e<\/li>\n<li>\u5229\u7528pow()\u51fd\u6570\u8fdb\u884c\u5feb\u901f\u8ba1\u7b97<\/li>\n<li>\u591a\u884c\u5b57\u7b26\u4e32\u76843\u79cd\u5b9e\u73b0\u65b9\u5f0f<\/li>\n<li>round()\u51fd\u6570\u7684\u4e00\u4e9b\u5c0f\u6280\u5de7<\/li>\n<li>\u2026\u2026<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>\u8865\u5145\u4e00\u4e0bStackoverflow\u4e0a\u7684\u300eHidden Features\u7cfb\u5217\u300f\uff1a<\/p>\n<ul>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/54929\/hidden-features-of-asp-net\" target=\"_blank\">ASP.NET<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/211378\/hidden-features-of-bash\" target=\"_blank\">Bash<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/245395\/hidden-features-of-windows-batch-files\" target=\"_blank\">Batch<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/132241\/hidden-features-of-c\" target=\"_blank\">C<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/9033\/hidden-features-of-c\" target=\"_blank\">C#<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/15496\/hidden-features-of-java\" target=\"_blank\">Java<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/61088\/hidden-features-of-javascript\" target=\"_blank\">JavaScript<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/63998\/hidden-features-of-ruby\" target=\"_blank\">Ruby<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/61401\/hidden-features-of-php\" target=\"_blank\">PHP<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/121243\/hidden-features-of-sql-server\" target=\"_blank\">SQL Server<\/a><\/li>\n<\/ul>\n<p><span style=\"color: #ff0000;\"><strong>All in all:<\/strong><\/span>\u00a0<a href=\"http:\/\/stackoverflow.com\/search?q=Hidden+Features+of+\" target=\"_blank\">http:\/\/stackoverflow.com\/search?q=Hidden+Features+of+<\/a><\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<h6>\u62d3\u5c55\u94fe\u63a5\uff1a<\/h6>\n<ul>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python\" target=\"_blank\">http:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python<\/a><\/li>\n<li><a href=\"http:\/\/www.petercollingridge.co.uk\/python-tricks\" target=\"_blank\">Python Tricks | Peter&#8217;s Website<\/a><\/li>\n<li><a href=\"http:\/\/www.quora.com\/What-are-some-hidden-features-of-Python\" target=\"_blank\">http:\/\/www.quora.com\/What-are-some-hidden-features-of-Python<\/a><\/li>\n<li><a href=\"https:\/\/www.quora.com\/What-are-some-cool-Python-tricks\" target=\"_blank\">https:\/\/www.quora.com\/What-are-some-cool-Python-tricks<\/a><\/li>\n<li><a href=\"https:\/\/news.ycombinator.com\/item?id=1512930\" target=\"_blank\">Hidden features of Python | Hacker News<\/a><\/li>\n<li><a href=\"http:\/\/www.dabeaz.com\/coroutines\/\" target=\"_blank\">http:\/\/www.dabeaz.com\/coroutines\/<\/a><\/li>\n<li><a href=\"http:\/\/www.dabeaz.com\/generators\/\" target=\"_blank\">http:\/\/www.dabeaz.com\/generators\/<\/a><\/li>\n<li><a href=\"http:\/\/www.dabeaz.com\/python\/UnderstandingGIL.pdf\" target=\"_blank\">http:\/\/www.dabeaz.com\/python\/UnderstandingGIL.pdf<\/a><\/li>\n<li><a href=\"http:\/\/www.slant.co\/topics\/222\/~what-are-your-favorite-hidden-features-of-python\" target=\"_blank\">http:\/\/www.slant.co\/topics\/222\/~what-are-your-favorite-hidden-features-of-python<\/a><\/li>\n<li><a href=\"http:\/\/www.zhihu.com\/question\/27376156\" target=\"_blank\">Python \u6709\u4ec0\u4e48\u5947\u6280\u6deb\u5de7\uff1f<\/a><\/li>\n<li><a href=\"http:\/\/www.zhihu.com\/question\/26911893\" target=\"_blank\">Python \u6709\u54ea\u4e9b\u65b0\u624b\u4e0d\u4f1a\u4e86\u89e3\u7684\u6df1\u5165\u7ec6\u8282\uff1f<\/a><\/li>\n<\/ul>\n<p>http:\/\/search.aol.com\/aol\/search?q=python+hidden+features<\/p>\n<ul>\n<li><a href=\"http:\/\/simeonfranklin.com\/blog\/2012\/jul\/1\/python-decorators-in-12-steps\/\" target=\"_blank\">http:\/\/simeonfranklin.com\/blog\/2012\/jul\/1\/python-decorators-in-12-steps\/<\/a><\/li>\n<li><a href=\"https:\/\/docs.python.org\/2\/howto\/descriptor.html\" target=\"_blank\">https:\/\/docs.python.org\/2\/howto\/descriptor.html<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/231767\/what-does-the-yield-keyword-do-in-python\" target=\"_blank\">http:\/\/stackoverflow.com\/questions\/231767\/what-does-the-yield-keyword-do-in-python<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/1995418\/python-generator-expression-vs-yield\" target=\"_blank\">http:\/\/stackoverflow.com\/questions\/1995418\/python-generator-expression-vs-yield<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/1022564\/what-is-the-difference-between-an-iterator-and-a-generator\" target=\"_blank\">http:\/\/stackoverflow.com\/questions\/1022564\/what-is-the-difference-between-an-iterator-and-a-generator<\/a><\/li>\n<\/ul>\n<h6>\u76f8\u5173\u62d3\u5c55\uff1a<\/h6>\n<p><a href=\"http:\/\/beerpla.net\/2009\/06\/21\/hidden-features-of-perl-php-javascript-c-c-c-java-ruby-python-and-others-collection-of-incredibly-useful-lists\/\" target=\"_blank\">http:\/\/beerpla.net\/2009\/06\/21\/hidden-features-of-perl-php-javascript-c-c-c-java-ruby-python-and-others-collection-of-incredibly-useful-lists\/<\/a><\/p>\n<h6>\nFor .. else syntax<\/h6>\n<pre class=\"lang:default decode:true \">for i in (1, 2, 4):\n    if i == 0:\n        break\nelse: print(\"i was never 0\")<\/pre>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/docs.python.org\/2\/tutorial\/datastructures.html#tuples-and-sequences\" target=\"_blank\">https:\/\/docs.python.org\/2\/tutorial\/datastructures.html#tuples-and-sequences<\/a><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>\u5b57\u5178\u7684get\u65b9\u6cd5<\/li>\n<li>for\/else\u8bed\u53e5<\/li>\n<li>generator<\/li>\n<li>iterator<\/li>\n<li>\u5c31\u5730\u7f6e\u6362\uff08&gt;&gt;&gt; a, b = b, a\uff09<\/li>\n<li>\u5217\u8868\u5207\u7247<\/li>\n<li>with\u8bed\u53e5\u5757<\/li>\n<li>\u5217\u8868\/\u5b57\u5178\u63a8\u5bfc\u5f0f<\/li>\n<li>\u5d4c\u5957\u5217\u8868\/\u5b57\u5178<\/li>\n<li>\u683c\u5f0f\u5316\u547d\u540d{Named formatting}<\/li>\n<li>\u6761\u4ef6\u8d4b\u503c{Conditional Assignment}\uff08\u4e09\u5143\u64cd\u4f5c\u7b26\uff1a&gt;&gt;&gt; &#8216;ham&#8217;<\/li>\n<li>if True else &#8216;spam&#8217;\uff09<\/li>\n<li>enumerate\u65b9\u6cd5<\/li>\n<li>\u6bd4\u8f83\u8fd0\u7b97\u7b26\u7684\u62fc\u63a5{\u6bd4\u5982\uff1a1 &lt; x &lt; 10}<\/li>\n<li>set\u64cd\u4f5c\u7684\u8fd0\u7b97\u7b26\u91cd\u8f7d<\/li>\n<li>\u591a\u884c\u5b57\u7b26\u4e32{\u4e09\u91cd\u5f15\u53f7}<\/li>\n<li>\u5e42\u51fd\u6570pow()\uff08pow() can also calculate (x ** y) % z efficiently\uff09<\/li>\n<li>zip()\u51fd\u6570\uff08\u7528\u4e8elist\u5408\u5e76\uff09<\/li>\n<li>dir()\u548chelp()\u51fd\u6570\uff08\u5f53\u7136\u6700\u597d\u7684\u80af\u5b9a\u662fIPython\uff09<\/li>\n<li>\u5185\u7f6e\u7684\u4e00\u4e9b\u529f\u80fd\u6027\u51fd\u6570\uff08encode()\/split()\/join()\/count()\uff09 https:\/\/docs.python.org\/2\/library\/functions.html<\/li>\n<li>\u5e8f\u5217\u4e58\u79ef\uff08&gt;&gt;&gt; &#8216;xyz&#8217; * 3\uff09<\/li>\n<li>sort()\u548csorted()\u51fd\u6570<\/li>\n<li>\u7279\u6b8a\u8bed\u6cd5\uff1afilter\u3001map\u3001reduce\u3001lambda https:\/\/docs.python.org\/2\/library\/functions.html<\/li>\n<\/ul>\n<p>\u5b57\u5178(\u4f7f\u7528\u5927\u62ec\u53f7\uff0c\u5e76\u7528\u5192\u53f7\u5206\u9694key\/value)<br \/>\n<a href=\"https:\/\/docs.python.org\/2\/library\/stdtypes.html#mapping-types-dict\" target=\"_blank\">https:\/\/docs.python.org\/2\/library\/stdtypes.html#mapping-types-dict<\/a><\/p>\n<p>\u5143\u7ec4(tuple) tuple=(1,)\uff0c\u8fd9\u662f\u5355\u4e2a\u5143\u7d20\u7684\u5143\u7ec4\u8868\u793a\uff0c\u9700\u52a0\u989d\u5916\u7684\u9017\u53f7\u3002tuple=1\uff0c2\uff0c3\uff0c4\uff0c\u8fd9\u4e5f\u53ef\u4ee5\u662f\u4e00\u4e2a\u5143\u7ec4\uff0c\u5728\u4e0d\u4f7f\u7528\u5706\u62ec\u53f7\u800c\u4e0d\u4f1a\u5bfc\u81f4\u6df7\u6dc6\u65f6\uff0cPython\u5141\u8bb8\u4e0d\u4f7f\u7528\u5706\u62ec\u53f7\u7684\u5143\u7ec4\u3002<br \/>\n<a href=\"https:\/\/docs.python.org\/2\/library\/functions.html#tuple\" target=\"_blank\">https:\/\/docs.python.org\/2\/library\/functions.html#tuple<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728Stackoverflow\u4e0a\u770b\u5230\u7684\u4e00\u5219\u5c0f\u6280\u5de7\uff1aHidden features of Python\uff0c\u4e0e\u4e4b\u7c7b\u4f3c\u7684 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,7],"tags":[8,19],"class_list":["post-1601","post","type-post","status-publish","format-standard","hentry","category-knowledgebase-2","category-programing","tag-python","tag-tips"],"views":3995,"_links":{"self":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/1601","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=1601"}],"version-history":[{"count":0,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/1601\/revisions"}],"wp:attachment":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/media?parent=1601"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/categories?post=1601"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/tags?post=1601"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}