Python 3.12 鏂扮壒鎬т粙缁?/title> <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700&display=swap" rel="stylesheet"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/github.min.css">\n <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/languages/python.min.js"></script> <style> /* 鍩虹鏍峰紡鍙橀噺瀹氫箟 */ :root { --primary-color: #4361ee; --secondary-color: #3a0ca3; --accent-color: #f72585; --text-color: #333333; --background-color: #ffffff; --card-background: #f8f9fa; --border-color: #e9ecef; --code-background: #f6f8fa; --shadow: 0 2px 8px rgba(0, 0, 0, 0.08); --radius: 8px; --transition: all 0.2s ease; } * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } body { font-family: 'Noto Sans SC', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: var(--background-color); color: var(--text-color); line-height: 1.6; font-size: 16px; } /* 涓诲鍣?*/ .container { max-width: 800px; margin: 0 auto; padding: 2rem 1.5rem; } /* 鏍囬鏍峰紡 */ h1 { color: var(--primary-color); font-size: 2rem; font-weight: 700; margin-bottom: 1.5rem; text-align: center; padding-bottom: 1rem; border-bottom: 2px solid var(--border-color); } h2 { color: var(--secondary-color); font-size: 1.5rem; font-weight: 600; margin: 2rem 0 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--border-color); } h3 { color: var(--text-color); font-size: 1.2rem; font-weight: 500; margin: 1.5rem 0 0.8rem; } /* 娈佃惤鍜屾枃鏈?*/ p { margin: 1rem 0; text-align: justify; } /* 鍒楄〃鏍峰紡 */ ul, ol { margin: 1rem 0; padding-left: 2rem; } li { margin: 0.5rem 0; } /* 浠g爜鏍峰紡 */ pre { background-color: var(--code-background); border-radius: var(--radius); padding: 1rem; overflow-x: auto; margin: 1.5rem 0; box-shadow: var(--shadow); } code { font-family: 'Consolas', 'Monaco', 'Courier New', monospace; font-size: 0.9rem; color: var(--secondary-color); } pre code { color: var(--text-color); } /* 鍗$墖鏍峰紡 */ .card { background-color: var(--card-background); border-radius: var(--radius); padding: 1.5rem; margin: 1.5rem 0; box-shadow: var(--shadow); transition: var(--transition); } .card:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); transform: translateY(-2px); } /* 鎻愮ず妗嗘牱寮?*/ .tip { background-color: rgba(67, 97, 238, 0.1); border-left: 4px solid var(--primary-color); padding: 1rem; margin: 1.5rem 0; border-radius: 0 var(--radius) var(--radius) 0; } /* 浠g爜楂樹寒 */ .hljs { background: var(--code-background) !important; } /* 鍝嶅簲寮忚璁?*/ @media (max-width: 768px) { .container { padding: 1.5rem 1rem; } h1 { font-size: 1.8rem; } h2 { font-size: 1.3rem; } h3 { font-size: 1.1rem; } } /* 澶撮儴瀵艰埅 */ header { background-color: var(--background-color); border-bottom: 1px solid var(--border-color); padding: 1rem 0; margin-bottom: 2rem; box-shadow: var(--shadow); } .header-container { max-width: 800px; margin: 0 auto; padding: 0 1.5rem; display: flex; justify-content: space-between; align-items: center; } .header-title { font-size: 1.2rem; font-weight: 700; color: var(--primary-color); } .back-link { color: var(--text-color); text-decoration: none; font-size: 0.9rem; transition: var(--transition); padding: 0.5rem 1rem; border-radius: var(--radius); border: 1px solid var(--border-color); } .back-link:hover { background-color: var(--primary-color); color: white; border-color: var(--primary-color); } /* 鍝嶅簲寮忓ご閮ㄨ璁?*/ @media (max-width: 768px) { .header-container { padding: 0 1rem; } .header-title { font-size: 1.1rem; } .back-link { padding: 0.4rem 0.8rem; font-size: 0.85rem; } } </style> </head> <body> <!-- 澶撮儴瀵艰埅 --> <header> <div class="header-container"> <div class="header-title">Python鏁欑▼</div> <a href="../article.html" class="back-link">杩斿洖鏂囩珷鍒楄〃</a> </div> </header> <div class="container"> <h1>Python 3.12 鏂扮壒鎬т粙缁?/h1> <p>Python 3.12 鏄?Python 璇█鐨勬渶鏂扮増鏈紝甯︽潵浜嗚澶氭柊鐗规€у拰鏀硅繘銆傛湰鏂囧皢璇︾粏浠嬬粛 Python 3.12 鐨勪富瑕佹柊鐗规€э紝甯姪寮€鍙戣€呬簡瑙e苟搴旂敤杩欎簺鏂板姛鑳姐€?/p> <h2>1. 澧炲己鐨?f-string 璇硶</h2> <p>Python 3.12 鏀硅繘浜?f-string 鐨勮娉曪紝鐜板湪鍙互鍦?f-string 涓娇鐢ㄦ洿澶嶆潅鐨勮〃杈惧紡锛屽寘鎷琛岃〃杈惧紡鍜屽祵濂楃殑 f-string銆?/p> <pre><code class="python"># Python 3.11 鍙婁互鍓? name = "Alice" age = 30 print(f"{name} is {age} years old") # Python 3.12 鏂扮壒鎬э細澶氳 f-string 琛ㄨ揪寮? items = [1, 2, 3, 4, 5] print(f"The sum of {items} is {sum( x for x in items )}") # 宓屽 f-string outer = "outer" inner = "inner" print(f"{f"{outer}" + f"{inner}"}")</code></pre> <h2>2. 绫诲瀷娉ㄨВ鐨勬敼杩?/h2> <h3>2.1 绫诲瀷鍒悕鐨勬硾鍨嬫敮鎸?/h3> <p>Python 3.12 鍏佽鍦ㄧ被鍨嬪埆鍚嶄腑浣跨敤娉涘瀷锛屼娇绫诲瀷娉ㄨВ鏇村姞鐏垫椿銆?/p> <pre><code class="python"># Python 3.11 鍙婁互鍓? from typing import List, TypeVar T = TypeVar('T') # 闇€瑕佷娇鐢?NewType 鎴栧叾浠栨柟寮? # Python 3.12 鏂扮壒鎬? from typing import TypeVar, Generic T = TypeVar('T') # 鐩存帴鍦ㄧ被鍨嬪埆鍚嶄腑浣跨敤娉涘瀷 ListOf = list[T] # 浣跨敤 def process_items(items: ListOf[int]) -> ListOf[str]: return [str(item) for item in items]</code></pre> <h3>2.2 绫诲瀷鍙傛暟鐨勮娉曟敼杩?/h3> <p>Python 3.12 绠€鍖栦簡绫诲瀷鍙傛暟鐨勮娉曪紝浣夸唬鐮佹洿鍔犵畝娲併€?/p> <pre><code class="python"># Python 3.11 鍙婁互鍓? from typing import List, Dict, Tuple def func(a: List[int], b: Dict[str, int]) -> Tuple[bool, str]: pass # Python 3.12 鏂扮壒鎬э細浣跨敤娉涘瀷璇硶 def func(a: list[int], b: dict[str, int]) -> tuple[bool, str]: pass</code></pre> <h2>3. 鎬ц兘鏀硅繘</h2> <h3>3.1 鏇村揩鐨勫惎鍔ㄦ椂闂?/h3> <p>Python 3.12 浼樺寲浜嗗惎鍔ㄦ椂闂达紝鐗瑰埆鏄浜庡ぇ鍨嬫ā鍧楃殑瀵煎叆銆?/p> <h3>3.2 鏇村揩鐨勬墽琛岄€熷害</h3> <p>Python 3.12 瀵?CPython 瑙i噴鍣ㄨ繘琛屼簡浼樺寲锛屾彁楂樹簡浠g爜鐨勬墽琛岄€熷害銆?/p> <h2>4. 璇硶鏀硅繘</h2> <h3>4.1 鏀寔 inline 绫诲瀷娉ㄨВ</h3> <p>Python 3.12 鍏佽鍦ㄥ嚱鏁板畾涔変腑浣跨敤 inline 绫诲瀷娉ㄨВ锛屼娇浠g爜鏇村姞绠€娲併€?/p> <pre><code class="python"># Python 3.11 鍙婁互鍓? def add(a: int, b: int) -> int: return a + b # Python 3.12 鏂扮壒鎬э細inline 绫诲瀷娉ㄨВ def add(a: int, b: int) -> int: return a + b # 鎴栬€呮洿绠€娲佺殑鍐欐硶 def add(a: int, b: int): return a + b # 绫诲瀷鎺ㄦ柇浼氳嚜鍔ㄦ帹鏂繑鍥炵被鍨?/code></pre> <h3>4.2 鏀硅繘鐨勯敊璇俊鎭?/h3> <p>Python 3.12 鎻愪緵浜嗘洿璇︾粏銆佹洿鍑嗙‘鐨勯敊璇俊鎭紝甯姪寮€鍙戣€呮洿蹇湴瀹氫綅鍜岃В鍐抽棶棰樸€?/p> <h2>5. 鏍囧噯搴撶殑鏀硅繘</h2> <h3>5.1 鏂板妯″潡</h3> <p>Python 3.12 鏂板浜嗕竴浜涙湁鐢ㄧ殑妯″潡锛屽寘鎷細</p> <ul> <li><strong>zoneinfo锛?/strong> 鎻愪緵鏃跺尯鏀寔</li> <li><strong>tomllib锛?/strong> 鎻愪緵 TOML 鏂囦欢瑙f瀽</li> </ul> <h3>5.2 鐜版湁妯″潡鐨勬敼杩?/h3> <p>Python 3.12 瀵圭幇鏈夋ā鍧楄繘琛屼簡鏀硅繘锛屽寘鎷細</p> <ul> <li><strong>asyncio锛?/strong> 鏀硅繘浜嗗紓姝ョ紪绋嬫敮鎸?/li> <li><strong>typing锛?/strong> 澧炲己浜嗙被鍨嬫敞瑙e姛鑳?/li> <li><strong>pathlib锛?/strong> 澧炲姞浜嗘柊鐨勬柟娉曞拰鍔熻兘</li> </ul> <h2>6. 鍏朵粬鏀硅繘</h2> <h3>6.1 鏇村ソ鐨勬枃妗e瓧绗︿覆鏀寔</h3> <p>Python 3.12 鏀硅繘浜嗘枃妗e瓧绗︿覆鐨勬敮鎸侊紝鍖呮嫭锛?/p> <ul> <li>鏀寔 Markdown 鏍煎紡鐨勬枃妗e瓧绗︿覆</li> <li>鏀硅繘浜嗘枃妗e瓧绗︿覆鐨勮В鏋愬拰鏄剧ず</li> </ul> <h3>6.2 澧炲己鐨勮皟璇曟敮鎸?/h3> <p>Python 3.12 鎻愪緵浜嗘洿濂界殑璋冭瘯鏀寔锛屽寘鎷細</p> <ul> <li>鏀硅繘鐨勫爢鏍堣窡韪俊鎭?/li> <li>鏇村ソ鐨勮皟璇曞櫒闆嗘垚</li> </ul> <h3>6.3 瀹夊叏鏀硅繘</h3> <p>Python 3.12 澧炲己浜嗗畨鍏ㄦ€э紝鍖呮嫭锛?/p> <ul> <li>鏀硅繘浜嗗瘑鐮佸搱甯岀畻娉?/li> <li>澧炲己浜嗙綉缁滃畨鍏?/li> </ul> <h2>7. 杩佺Щ鍒?Python 3.12</h2> <p>杩佺Щ鍒?Python 3.12 闇€瑕佹敞鎰忎互涓嬪嚑鐐癸細</p> <ol> <li>妫€鏌ヤ唬鐮佹槸鍚︿娇鐢ㄤ簡宸插純鐢ㄧ殑鍔熻兘</li> <li>鏇存柊绫诲瀷娉ㄨВ浠ヤ娇鐢ㄦ柊鐨勮娉?/li> <li>娴嬭瘯浠g爜鍦?Python 3.12 涓嬬殑鎬ц兘</li> </ol> <pre><code class="bash"># 瀹夎 Python 3.12 # 鍦?macOS 涓? brew install python@3.12 # 鍦?Ubuntu 涓? sudo apt update sudo apt install python3.12 # 楠岃瘉瀹夎 python3.12 --version</code></pre> <div class="tip"> <strong>鎻愮ず锛?/strong> 寤鸿鍦ㄦ祴璇曠幆澧冧腑鍏堝皾璇?Python 3.12锛岀劧鍚庡啀鍦ㄧ敓浜х幆澧冧腑閮ㄧ讲銆? </div> <div class="card"> <h3>鎬荤粨</h3> <p>Python 3.12 甯︽潵浜嗚澶氭柊鐗规€у拰鏀硅繘锛屽寘鎷寮虹殑 f-string 璇硶銆佺被鍨嬫敞瑙g殑鏀硅繘銆佹€ц兘浼樺寲銆佽娉曟敼杩涖€佹爣鍑嗗簱鐨勫寮虹瓑銆傝繖浜涙柊鐗规€т娇 Python 浠g爜鏇村姞绠€娲併€侀珮鏁堛€佸畨鍏紝涓哄紑鍙戣€呮彁渚涗簡鏇村ソ鐨勭紪绋嬩綋楠屻€傚缓璁紑鍙戣€呭敖蹇崌绾у埌 Python 3.12锛屼互鍏呭垎鍒╃敤杩欎簺鏂扮壒鎬с€?/p> </div> </div> <script> // 鍒濆鍖栦唬鐮侀珮浜? document.addEventListener('DOMContentLoaded', (event) => { document.querySelectorAll('pre code').forEach((block) => { hljs.highlightBlock(block); }); }); </script> <footer> <div class="footer-content"> <p>© 2026 骞冲钩鐨勫皬鐮寸珯 鐗堟潈鎵€鏈?/p> <div class="footer-links"> <span>鐢?<a href="https://ppkjgzs.top" class="footer-link" target="_blank">骞冲钩鐨勫皬鐮寸珯</a> 鍒朵綔</span> <span class="divider">|</span> <span>浣跨敤 <span class="tech">HTML5</span>, <span class="tech">CSS3</span> 鍜?<span class="tech">Font Awesome</span> 鏋勫缓</span> <span class="divider">|</span> <a href="https://beian.miit.gov.cn/" target="_blank" class="footer-link">娴橧CP澶?025194709鍙?2</a> <span class="divider">|</span> <a href="https://beian.mps.gov.cn/#/query/webSearch?code=13020202000680" rel="noreferrer" target="_blank" class="footer-link">鍐€鍏綉瀹夊13020202000680鍙?/a> </div> </div> </footer> <style> /* 椤佃剼鏍峰紡 */ footer { background-color: #ffffff; color: var(--text-color); padding: 2rem 1rem; text-align: center; margin-top: 3rem; font-size: 0.9rem; border-top: 1px solid var(--border-color); } .footer-content { max-width: 800px; margin: 0 auto; text-align: center; } .footer-content p { text-align: center; margin-bottom: 1rem; } .footer-links { margin-top: 1rem; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1rem; font-size: 0.85rem; text-align: center; } .footer-links span { text-align: center; } .footer-link { color: var(--primary-color); text-decoration: none; } .footer-link:hover { text-decoration: underline; } .divider { color: var(--border-color); } .tech { color: var(--primary-color); font-weight: 500; } /* 椤佃剼鍝嶅簲寮忎紭鍖?*/ @media (max-width: 768px) { footer { padding: 1.5rem 1rem; font-size: 0.85rem; } .footer-links { gap: 0.8rem; font-size: 0.8rem; } } </style> </body> </html>