<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>学习笔记 on 北斗的天地</title>
        <link>https://www.imcry.vip/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0.html</link>
        <description>Recent content in 学习笔记 on 北斗的天地</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh</language>
        <lastBuildDate>Sat, 09 May 2026 22:10:00 +0800</lastBuildDate><atom:link href="https://www.imcry.vip/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>规划佬狂喜：一键下载国内常用地理数据</title>
            <link>https://www.imcry.vip/post/acquire-resources-from-geofabrik.html</link>
            <pubDate>Sat, 09 May 2026 22:10:00 +0800</pubDate>
            <guid>https://www.imcry.vip/post/acquire-resources-from-geofabrik.html</guid>
            <description>&lt;img src=&#34;https://www.imcry.vip/cover/cover-1.jpg&#34; alt=&#34;Featured image of post 规划佬狂喜：一键下载国内常用地理数据&#34; /&gt;&lt;p&gt;&lt;strong&gt;GeoFabrik&lt;/strong&gt;是一家德国公司，定期从&lt;strong&gt;OpenStreetMap&lt;/strong&gt;的全球数据库中下载数据，然后按照地理区域进行分割和处理，生成方便下载和使用的数据文件。&lt;/p&gt;&#xA;&lt;h1 id=&#34;数据下载&#34;&gt;&lt;a href=&#34;#%e6%95%b0%e6%8d%ae%e4%b8%8b%e8%bd%bd&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;数据下载&#xA;&lt;/h1&gt;&lt;p&gt;我国大陆数据链接：&lt;a class=&#34;link&#34; href=&#34;https://download.geofabrik.de/asia/china.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://download.geofabrik.de/asia/china.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;数据时间&#34;&gt;&lt;a href=&#34;#%e6%95%b0%e6%8d%ae%e6%97%b6%e9%97%b4&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;数据时间&#xA;&lt;/h1&gt;&lt;p&gt;按照&lt;strong&gt;Geofabrik&lt;/strong&gt;网站页面的说法，通常&lt;em&gt;每天更新一次&lt;/em&gt;。&lt;/p&gt;&#xA;&lt;h1 id=&#34;数据内容&#34;&gt;&lt;a href=&#34;#%e6%95%b0%e6%8d%ae%e5%86%85%e5%ae%b9&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;数据内容&#xA;&lt;/h1&gt;&lt;p&gt;国内数据按照省份或直辖市划分。&#xA;至少包含了如下数据：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;行政区划区域&lt;/li&gt;&#xA;&lt;li&gt;建筑物轮廓&lt;/li&gt;&#xA;&lt;li&gt;自然地貌&lt;/li&gt;&#xA;&lt;li&gt;土地利用类型&lt;/li&gt;&#xA;&lt;li&gt;居民点&lt;/li&gt;&#xA;&lt;li&gt;线状和面状水系&lt;/li&gt;&#xA;&lt;li&gt;道路网络&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;效果截图&#34;&gt;&lt;a href=&#34;#%e6%95%88%e6%9e%9c%e6%88%aa%e5%9b%be&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;效果截图&#xA;&lt;/h1&gt;&lt;p&gt;以&lt;strong&gt;湖北省&lt;/strong&gt;为例。&#xA;&lt;img loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://s41.ax1x.com/2026/05/09/peLU9Mt.png&#34;&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Golang在Windows中编译成Linux可执行文件</title>
            <link>https://www.imcry.vip/post/332.html</link>
            <pubDate>Sat, 03 Jan 2026 23:58:02 +0800</pubDate>
            <guid>https://www.imcry.vip/post/332.html</guid>
            <description>&lt;p&gt;在Windows PowerShell运行如下命令：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$env:GOOS&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;linux&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$env:CGO_ENABLED&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;0&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$env:GOARCH&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;amd64&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
        </item><item>
            <title>React 部署在服务器后暴露源码</title>
            <link>https://www.imcry.vip/post/2025-11-26-331.html</link>
            <pubDate>Wed, 26 Nov 2025 13:31:45 +0800</pubDate>
            <guid>https://www.imcry.vip/post/2025-11-26-331.html</guid>
            <description>&lt;img src=&#34;https://www.imcry.vip/cover/cover-4.jpg&#34; alt=&#34;Featured image of post React 部署在服务器后暴露源码&#34; /&gt;&lt;h1 id=&#34;诱因&#34;&gt;&lt;a href=&#34;#%e8%af%b1%e5%9b%a0&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;诱因&#xA;&lt;/h1&gt;&lt;p&gt;默认情况下，Create React App（CRA）或其他构建工具（Vite、Webpack）在执行 build 命令时，会生成 &lt;strong&gt;source map&lt;/strong&gt; 文件&lt;/p&gt;&#xA;&lt;h1 id=&#34;何为-source-map-&#34;&gt;&lt;a href=&#34;#%e4%bd%95%e4%b8%ba-source-map-&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;何为 Source Map ？&#xA;&lt;/h1&gt;&lt;p&gt;&lt;strong&gt;Source Map&lt;/strong&gt; 是一种映射文件（通常是 &lt;code&gt;.map&lt;/code&gt; 文件），它将压缩/编译后的代码（&lt;code&gt;main.js&lt;/code&gt;）映射回原始的源代码（&lt;code&gt;App.jsx&lt;/code&gt;）。它的主要作用是方便调试：即使代码被压缩、混淆或转译（JSX → JS、ES6+ → ES5），开发者依然可以在浏览器中看到原始代码结构。&lt;/p&gt;&#xA;&lt;h1 id=&#34;解决方法&#34;&gt;&lt;a href=&#34;#%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;解决方法&#xA;&lt;/h1&gt;&lt;h2 id=&#34;方法一禁用-source-map-生成&#34;&gt;&lt;a href=&#34;#%e6%96%b9%e6%b3%95%e4%b8%80%e7%a6%81%e7%94%a8-source-map-%e7%94%9f%e6%88%90&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;方法一：禁用 source map 生成&#xA;&lt;/h2&gt;&lt;h3 id=&#34;如果使用的是-create-react-app-cra&#34;&gt;&lt;a href=&#34;#%e5%a6%82%e6%9e%9c%e4%bd%bf%e7%94%a8%e7%9a%84%e6%98%af-create-react-app-cra&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;如果使用的是 Create React App (CRA)&#xA;&lt;/h3&gt;&lt;p&gt;在项目根目录创建一个或修改已有文件 &lt;code&gt;.env.production&lt;/code&gt; ，加入以下内容：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;GENERATE_SOURCEMAP=false&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;重新运行 &lt;code&gt;npm run build&lt;/code&gt;，这样构建出的产物将不包含 &lt;code&gt;.map&lt;/code&gt; 文件，JS 文件末尾也不会有 &lt;strong&gt;sourceMappingURL 注释&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;h3 id=&#34;如果使用的是-vite&#34;&gt;&lt;a href=&#34;#%e5%a6%82%e6%9e%9c%e4%bd%bf%e7%94%a8%e7%9a%84%e6%98%af-vite&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;如果使用的是 Vite&#xA;&lt;/h3&gt;&lt;p&gt;在 &lt;code&gt;vite.config.js&lt;/code&gt; 中配置：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;default&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;defineConfig&lt;/span&gt;({&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;build&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;sourcemap&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;, &lt;span style=&#34;color:#75715e&#34;&gt;// 关闭 source map&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;});&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;如果使用的是-自定义-webpack-配置&#34;&gt;&lt;a href=&#34;#%e5%a6%82%e6%9e%9c%e4%bd%bf%e7%94%a8%e7%9a%84%e6%98%af-%e8%87%aa%e5%ae%9a%e4%b9%89-webpack-%e9%85%8d%e7%bd%ae&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;如果使用的是 自定义 Webpack 配置&#xA;&lt;/h3&gt;&lt;p&gt;在 &lt;code&gt;webpack.config.prod.js&lt;/code&gt; 中设置：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;module&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;exports&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;devtool&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;, &lt;span style=&#34;color:#75715e&#34;&gt;// 或 &amp;#39;hidden-source-map&amp;#39;（生成但不引用）&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#75715e&#34;&gt;// ...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;方法二部署时删除-map-文件&#34;&gt;&lt;a href=&#34;#%e6%96%b9%e6%b3%95%e4%ba%8c%e9%83%a8%e7%bd%b2%e6%97%b6%e5%88%a0%e9%99%a4-map-%e6%96%87%e4%bb%b6&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;方法二：部署时删除 .map 文件&#xA;&lt;/h2&gt;&lt;p&gt;如果无法修改构建配置，也可以在部署脚本中手动删除：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 构建后删除所有 .map 文件&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rm build/static/**/*.map&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;方法三通过服务器配置阻止访问-map-文件&#34;&gt;&lt;a href=&#34;#%e6%96%b9%e6%b3%95%e4%b8%89%e9%80%9a%e8%bf%87%e6%9c%8d%e5%8a%a1%e5%99%a8%e9%85%8d%e7%bd%ae%e9%98%bb%e6%ad%a2%e8%ae%bf%e9%97%ae-map-%e6%96%87%e4%bb%b6&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;方法三：通过服务器配置阻止访问 .map 文件&#xA;&lt;/h2&gt;&lt;p&gt;在 Nginx 中添加：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;location ~ \.map$ {&#xA;  deny all;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这样即使文件存在，用户也无法通过浏览器访问&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>修改npm镜像地址</title>
            <link>https://www.imcry.vip/post/330.html</link>
            <pubDate>Sun, 21 Sep 2025 03:41:00 +0800</pubDate>
            <guid>https://www.imcry.vip/post/330.html</guid>
            <description>&lt;p&gt;切换至&lt;code&gt;npmmirror&lt;/code&gt;镜像&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-npm&#34; data-lang=&#34;npm&#34;&gt;npm config set registry https://registry.npmmirror.com&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;清除-npm-缓存&#34;&gt;&lt;a href=&#34;#%e6%b8%85%e9%99%a4-npm-%e7%bc%93%e5%ad%98&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;清除 npm 缓存&#xA;&lt;/h1&gt;&lt;p&gt;强制清除 npm 的本地缓存，然后再重新安装依赖，解决因缓存导致的证书验证问题&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;npm cache clean --force&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;更新-npm&#34;&gt;&lt;a href=&#34;#%e6%9b%b4%e6%96%b0-npm&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;更新 npm&#xA;&lt;/h1&gt;&lt;p&gt;将 npm 更新到最新版本，然后再尝试安装&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;npm install -g npm&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
        </item><item>
            <title>解决VSCODE的终端无法执行npx命令</title>
            <link>https://www.imcry.vip/post/327.html</link>
            <pubDate>Sun, 17 Aug 2025 02:01:00 +0800</pubDate>
            <guid>https://www.imcry.vip/post/327.html</guid>
            <description>&lt;p&gt;我用vscode里的终端尝试构建React项目时，发现无法执行&lt;code&gt;npx&lt;/code&gt;指令。&lt;br&gt;&#xA;通过网上检索了下信息，得知错误是因为PowerShell 执行策略限制导致的。Windows 默认禁止运行未签名的脚本，而&lt;code&gt;npx&lt;/code&gt;本质上是一个&lt;code&gt;.ps1&lt;/code&gt;脚本文件。&lt;/p&gt;&#xA;&lt;h1 id=&#34;解决&#34;&gt;&lt;a href=&#34;#%e8%a7%a3%e5%86%b3&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;解决&#xA;&lt;/h1&gt;&lt;h2 id=&#34;方法一临时允许当前会话运行脚本&#34;&gt;&lt;a href=&#34;#%e6%96%b9%e6%b3%95%e4%b8%80%e4%b8%b4%e6%97%b6%e5%85%81%e8%ae%b8%e5%bd%93%e5%89%8d%e4%bc%9a%e8%af%9d%e8%bf%90%e8%a1%8c%e8%84%9a%e6%9c%ac&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;方法一：临时允许当前会话运行脚本&#xA;&lt;/h2&gt;&lt;p&gt;在 PowerShell 中运行以下命令：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Set-ExecutionPolicy -Scope &lt;span style=&#34;color:#66d9ef&#34;&gt;Process&lt;/span&gt; -ExecutionPolicy Bypass&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;方法二永久修改当前用户的执行策略&#34;&gt;&lt;a href=&#34;#%e6%96%b9%e6%b3%95%e4%ba%8c%e6%b0%b8%e4%b9%85%e4%bf%ae%e6%94%b9%e5%bd%93%e5%89%8d%e7%94%a8%e6%88%b7%e7%9a%84%e6%89%a7%e8%a1%8c%e7%ad%96%e7%95%a5&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;方法二：永久修改当前用户的执行策略&#xA;&lt;/h2&gt;&lt;p&gt;在 PowerShell 中运行以下命令：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;验证&#34;&gt;&lt;a href=&#34;#%e9%aa%8c%e8%af%81&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;验证&#xA;&lt;/h1&gt;&lt;p&gt;重新在vscode的终端中执行&lt;code&gt;npx&lt;/code&gt;命令后输出如下的类似结果：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PS D:\a\b&amp;gt; npx&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Entering npm script environment at location&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;D:\a\b&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Type &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;exit&amp;#39;&lt;/span&gt; or ^D when finished&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Microsoft Windows [版本 &lt;span style=&#34;color:#ae81ff&#34;&gt;10.0&lt;/span&gt;.26100.&lt;span style=&#34;color:#ae81ff&#34;&gt;4946&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
        </item><item>
            <title>解决FastAPI的DOC文档访问太慢</title>
            <link>https://www.imcry.vip/post/326.html</link>
            <pubDate>Sat, 16 Aug 2025 02:41:17 +0800</pubDate>
            <guid>https://www.imcry.vip/post/326.html</guid>
            <description>&lt;p&gt;打开路径：&lt;code&gt;Python安装目录\Lib\site-packages\fastapi\openapi&lt;/code&gt;&lt;br&gt;&#xA;编辑：&lt;code&gt;docs.py&lt;/code&gt;文件&lt;/p&gt;&#xA;&lt;h1 id=&#34;替换内容&#34;&gt;&lt;a href=&#34;#%e6%9b%bf%e6%8d%a2%e5%86%85%e5%ae%b9&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;替换内容&#xA;&lt;/h1&gt;&lt;p&gt;将文件中的&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cdn.jsdelivr.net&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;替换为&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cdn.mengze.vip&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;保存文件，重新载入DOCS网页&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Win11修改默认右键菜单</title>
            <link>https://www.imcry.vip/post/325.html</link>
            <pubDate>Thu, 03 Apr 2025 11:07:00 +0800</pubDate>
            <guid>https://www.imcry.vip/post/325.html</guid>
            <description>&lt;p&gt;右击&lt;code&gt;开始菜单&lt;/code&gt;，选择&lt;code&gt;终端管理员&lt;/code&gt;&lt;br&gt;&#xA;&lt;img alt=&#34;pE6FS7d.png&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://s21.ax1x.com/2025/04/03/pE6FS7d.png&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;运行指令&#34;&gt;&lt;a href=&#34;#%e8%bf%90%e8%a1%8c%e6%8c%87%e4%bb%a4&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;运行指令&#xA;&lt;/h2&gt;&lt;p&gt;在&lt;code&gt;终端管理员&lt;/code&gt;窗口中右键粘贴以下指令：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;reg.exe add &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32&amp;#34;&lt;/span&gt; /f /ve&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;样式生效&#34;&gt;&lt;a href=&#34;#%e6%a0%b7%e5%bc%8f%e7%94%9f%e6%95%88&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;样式生效&#xA;&lt;/h2&gt;&lt;p&gt;电脑重启后样式即可生效&lt;/p&gt;&#xA;&lt;h2 id=&#34;如需恢复&#34;&gt;&lt;a href=&#34;#%e5%a6%82%e9%9c%80%e6%81%a2%e5%a4%8d&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;如需恢复&#xA;&lt;/h2&gt;&lt;p&gt;如果需要恢复成WIN11自带的样式&lt;br&gt;&#xA;同样，在&lt;code&gt;终端管理员&lt;/code&gt;运行指令：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;reg.exe delete &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32&amp;#34;&lt;/span&gt; /va /f&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
        </item><item>
            <title>[Python]初学递归</title>
            <link>https://www.imcry.vip/post/324.html</link>
            <pubDate>Mon, 20 Jan 2025 03:07:00 +0800</pubDate>
            <guid>https://www.imcry.vip/post/324.html</guid>
            <description>&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;递归&lt;/strong&gt;在编程中是一种非常重要的&lt;em&gt;&lt;strong&gt;算法&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;递归&lt;/strong&gt;:即方法(函数)自己调用自己的一种特殊编程写法&lt;/li&gt;&#xA;&lt;li&gt;最典型的&lt;strong&gt;递归场景&lt;/strong&gt;为找出一个文件夹中全部的&lt;em&gt;&lt;strong&gt;文件&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;注意&#34;&gt;&lt;a href=&#34;#%e6%b3%a8%e6%84%8f&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;注意&#xA;&lt;/h1&gt;&lt;ul&gt;&#xA;&lt;li&gt;退出的条件，否则容易变成无限递归&lt;/li&gt;&#xA;&lt;li&gt;返回值的传递,确保从最内层，层层传递到最外层&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;递归示意图&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://s21.ax1x.com/2025/01/20/pEkfKtU.jpg&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;代码&#34;&gt;&lt;a href=&#34;#%e4%bb%a3%e7%a0%81&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;代码&#xA;&lt;/h1&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; os&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;get_files_recursion_from_dir&lt;/span&gt;(path)&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;list:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&amp;#34;获取指定路径下的全部文件列表&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    包含全部文件，如果目录不存在就返回空列表&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    Args:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        path (str): 被获取的路径&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    &amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;正在搜索文件：&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;path&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    file_list &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; []&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; os&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;path&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;exists(path):    &lt;span style=&#34;color:#75715e&#34;&gt;# 判断路径是否存在&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; f &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; os&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;listdir(path):      &lt;span style=&#34;color:#75715e&#34;&gt;# 列出该路径下的内容&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            new_path &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; path &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; f&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; os&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;path&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;isdir(new_path): &lt;span style=&#34;color:#75715e&#34;&gt;# 判断指定路径是否为文件夹&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                file_list &lt;span style=&#34;color:#f92672&#34;&gt;+=&lt;/span&gt; get_files_recursion_from_dir(new_path)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                file_list&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;append(new_path)        &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; []&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; file_list&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; __name__ &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;__main__&amp;#39;&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(get_files_recursion_from_dir(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;D:/draw.io&amp;#34;&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;输出&#34;&gt;&lt;a href=&#34;#%e8%be%93%e5%87%ba&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;输出&#xA;&lt;/h1&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;正在搜索文件：D:/draw.io&#xD;&#xA;正在搜索文件：D:/draw.io/locales&#xD;&#xA;正在搜索文件：D:/draw.io/resources&#xD;&#xA;[&amp;#39;D:/draw.io/chrome_100_percent.pak&amp;#39;, &amp;#39;D:/draw.io/chrome_200_percent.pak&amp;#39;, &amp;#39;D:/draw.io/d3dcompiler_47.dll&amp;#39;, &amp;#39;D:/draw.io/draw.io.exe&amp;#39;, &amp;#39;D:/draw.io/ffmpeg.dll&amp;#39;, &amp;#39;D:/draw.io/icudtl.dat&amp;#39;, &amp;#39;D:/draw.io/libEGL.dll&amp;#39;, &amp;#39;D:/draw.io/libGLESv2.dll&amp;#39;, &amp;#39;D:/draw.io/LICENSE.electron.txt&amp;#39;, &amp;#39;D:/draw.io/LICENSES.chromium.html&amp;#39;, &amp;#39;D:/draw.io/locales/af.pak&amp;#39;, &amp;#39;D:/draw.io/locales/am.pak&amp;#39;, &amp;#39;D:/draw.io/locales/ar.pak&amp;#39;, &amp;#39;D:/draw.io/locales/bg.pak&amp;#39;, &amp;#39;D:/draw.io/locales/bn.pak&amp;#39;, &#xD;&#xA;&amp;#39;D:/draw.io/locales/ca.pak&amp;#39;, &amp;#39;D:/draw.io/locales/cs.pak&amp;#39;, &amp;#39;D:/draw.io/locales/da.pak&amp;#39;, &amp;#39;D:/draw.io/locales/de.pak&amp;#39;, &amp;#39;D:/draw.io/locales/el.pak&amp;#39;, &amp;#39;D:/draw.io/locales/en-GB.pak&amp;#39;, &amp;#39;D:/draw.io/locales/en-US.pak&amp;#39;, &amp;#39;D:/draw.io/locales/es-419.pak&amp;#39;, &amp;#39;D:/draw.io/locales/es.pak&amp;#39;, &amp;#39;D:/draw.io/locales/et.pak&amp;#39;, &amp;#39;D:/draw.io/locales/fa.pak&amp;#39;, &amp;#39;D:/draw.io/locales/fi.pak&amp;#39;, &amp;#39;D:/draw.io/locales/fil.pak&amp;#39;, &amp;#39;D:/draw.io/locales/fr.pak&amp;#39;, &amp;#39;D:/draw.io/locales/gu.pak&amp;#39;, &amp;#39;D:/draw.io/locales/he.pak&amp;#39;, &amp;#39;D:/draw.io/locales/hi.pak&amp;#39;, &amp;#39;D:/draw.io/locales/hr.pak&amp;#39;, &amp;#39;D:/draw.io/locales/hu.pak&amp;#39;, &amp;#39;D:/draw.io/locales/id.pak&amp;#39;, &amp;#39;D:/draw.io/locales/it.pak&amp;#39;, &amp;#39;D:/draw.io/locales/ja.pak&amp;#39;, &amp;#39;D:/draw.io/locales/kn.pak&amp;#39;, &amp;#39;D:/draw.io/locales/ko.pak&amp;#39;, &amp;#39;D:/draw.io/locales/lt.pak&amp;#39;, &amp;#39;D:/draw.io/locales/lv.pak&amp;#39;, &amp;#39;D:/draw.io/locales/ml.pak&amp;#39;, &amp;#39;D:/draw.io/locales/mr.pak&amp;#39;, &amp;#39;D:/draw.io/locales/ms.pak&amp;#39;, &amp;#39;D:/draw.io/locales/nb.pak&amp;#39;, &amp;#39;D:/draw.io/locales/nl.pak&amp;#39;, &amp;#39;D:/draw.io/locales/pl.pak&amp;#39;, &amp;#39;D:/draw.io/locales/pt-BR.pak&amp;#39;, &amp;#39;D:/draw.io/locales/pt-PT.pak&amp;#39;, &amp;#39;D:/draw.io/locales/ro.pak&amp;#39;, &amp;#39;D:/draw.io/locales/ru.pak&amp;#39;, &amp;#39;D:/draw.io/locales/sk.pak&amp;#39;, &amp;#39;D:/draw.io/locales/sl.pak&amp;#39;, &amp;#39;D:/draw.io/locales/sr.pak&amp;#39;, &amp;#39;D:/draw.io/locales/sv.pak&amp;#39;, &amp;#39;D:/draw.io/locales/sw.pak&amp;#39;, &amp;#39;D:/draw.io/locales/ta.pak&amp;#39;, &amp;#39;D:/draw.io/locales/te.pak&amp;#39;, &amp;#39;D:/draw.io/locales/th.pak&amp;#39;, &amp;#39;D:/draw.io/locales/tr.pak&amp;#39;, &amp;#39;D:/draw.io/locales/uk.pak&amp;#39;, &amp;#39;D:/draw.io/locales/ur.pak&amp;#39;, &amp;#39;D:/draw.io/locales/vi.pak&amp;#39;, &amp;#39;D:/draw.io/locales/zh-CN.pak&amp;#39;, &amp;#39;D:/draw.io/locales/zh-TW.pak&amp;#39;, &amp;#39;D:/draw.io/resources/app-update.yml&amp;#39;, &amp;#39;D:/draw.io/resources/app.asar&amp;#39;, &amp;#39;D:/draw.io/resources/elevate.exe&amp;#39;, &amp;#39;D:/draw.io/resources.pak&amp;#39;, &amp;#39;D:/draw.io/snapshot_blob.bin&amp;#39;, &amp;#39;D:/draw.io/Uninstall draw.io.exe&amp;#39;, &amp;#39;D:/draw.io/v8_context_snapshot.bin&amp;#39;, &amp;#39;D:/draw.io/vk_swiftshader.dll&amp;#39;, &amp;#39;D:/draw.io/vk_swiftshader_icd.json&amp;#39;, &amp;#39;D:/draw.io/vulkan-1.dll&amp;#39;]&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
        </item><item>
            <title>[Python]初学socket</title>
            <link>https://www.imcry.vip/post/323.html</link>
            <pubDate>Fri, 17 Jan 2025 19:26:00 +0800</pubDate>
            <guid>https://www.imcry.vip/post/323.html</guid>
            <description>&lt;p&gt;&lt;strong&gt;socket&lt;/strong&gt;(简称 套接字)是进程之间通信一个工具,&#xA;好比现实生活中的插座,所有的家用电器要想工作都是基于插座进行&#xA;进程之间想要进行网络通信需要&lt;strong&gt;socket&lt;/strong&gt;，它负责进程之间的网络数据传输&#xA;2个进程之间通过Socket进行相互通讯，就必须有&lt;strong&gt;服务端&lt;/strong&gt;和&lt;strong&gt;客户端&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Socket服务端:等待其它进程的连接、可接受发来的消息、可以回复消息&lt;/li&gt;&#xA;&lt;li&gt;Socket客户端:主动连接服务端、可以发送消息、可以接收回复&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;pEFxQ0O.jpg&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://s21.ax1x.com/2025/01/17/pEFxQ0O.jpg&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;服务端&#34;&gt;&lt;a href=&#34;#%e6%9c%8d%e5%8a%a1%e7%ab%af&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;服务端&#xA;&lt;/h1&gt;&lt;h2 id=&#34;代码&#34;&gt;&lt;a href=&#34;#%e4%bb%a3%e7%a0%81&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;代码&#xA;&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; socket&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; time&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;socket_server &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; socket&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;socket()     &lt;span style=&#34;color:#75715e&#34;&gt;# 创建socket对象&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;host , port &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;127.0.0.1&amp;#39;&lt;/span&gt; , &lt;span style=&#34;color:#ae81ff&#34;&gt;6565&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;socket_server&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bind((host,port))    &lt;span style=&#34;color:#75715e&#34;&gt;# 绑定IP及端口&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;socket_server&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;listen(&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;)     &lt;span style=&#34;color:#75715e&#34;&gt;# 监听，参数表示可接受的连接数量&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conn , address &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; socket_server&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;accept()    &lt;span style=&#34;color:#75715e&#34;&gt;# 阻塞，等待客户端连接，采用这种方式可直接接收二元元组内的两个元素&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conn&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;send(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;我是服务端，很高兴与你连接!&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;encode(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;utf-8&amp;#39;&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;服务端接收到链接，客户端地址：&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;address&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;True&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    data : str &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; conn&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;recv(&lt;span style=&#34;color:#ae81ff&#34;&gt;1024&lt;/span&gt;)&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;decode(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;UTF-8&amp;#34;&lt;/span&gt;)  &lt;span style=&#34;color:#75715e&#34;&gt;# 接收客户端发来的信息，采用服务端与客户端连接的对象,recv是缓冲区&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;接收到客户端发来的信息:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;data&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; data &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;exit&amp;#39;&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        msg &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;已收到结束指令，即将关闭连接！！！&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;encode(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        conn&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;send(msg)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;break&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    msg &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;lt;自动回复&amp;gt;当前时间戳：&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;time&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;time()&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;encode(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    conn&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;send(msg)  &lt;span style=&#34;color:#75715e&#34;&gt;# 服务端向客户端发送信息&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(msg&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;decode(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conn&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;send(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;再见!&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;encode(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;utf-8&amp;#39;&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conn&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;close()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;socket_server&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;close()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;运行&#34;&gt;&lt;a href=&#34;#%e8%bf%90%e8%a1%8c&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;运行&#xA;&lt;/h2&gt;&lt;p&gt;&lt;img alt=&#34;pEFxl7D.png&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://s21.ax1x.com/2025/01/17/pEFxl7D.png&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;客户端&#34;&gt;&lt;a href=&#34;#%e5%ae%a2%e6%88%b7%e7%ab%af&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;客户端&#xA;&lt;/h1&gt;&lt;h2 id=&#34;代码-1&#34;&gt;&lt;a href=&#34;#%e4%bb%a3%e7%a0%81-1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;代码&#xA;&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; socket &lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt; time&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;host , port &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;127.0.0.1&amp;#39;&lt;/span&gt; , &lt;span style=&#34;color:#ae81ff&#34;&gt;6565&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;socket_client &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; socket&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;socket()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;socket_client&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;connect((host,port))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;socket_client&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;send(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;我是客户端，很高兴与你连接!&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;encode(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;utf-8&amp;#39;&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;True&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    msg &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;lt;客户端自动回复&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;time&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;time()&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;encode(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;utf-8&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    data &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; socket_client&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;recv(&lt;span style=&#34;color:#ae81ff&#34;&gt;1024&lt;/span&gt;)&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;decode(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;utf-8&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;收到服务端信息:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;data&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; data &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;exit&amp;#39;&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        msg &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;收到来自服务端的&amp;lt;退出&amp;gt;指令&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;encode(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;utf-8&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        socket_client&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;send(msg)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;break&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    socket_client&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;send(msg)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;socket_client&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;send(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;再见!&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;encode(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;utf-8&amp;#39;&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;socket_client&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;close()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;运行-1&#34;&gt;&lt;a href=&#34;#%e8%bf%90%e8%a1%8c-1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;运行&#xA;&lt;/h2&gt;&lt;p&gt;&lt;img alt=&#34;pEFx3Ae.png&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://s21.ax1x.com/2025/01/17/pEFx3Ae.png&#34;&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>[Python]初学多线程</title>
            <link>https://www.imcry.vip/post/322.html</link>
            <pubDate>Thu, 16 Jan 2025 19:50:00 +0800</pubDate>
            <guid>https://www.imcry.vip/post/322.html</guid>
            <description>&lt;p&gt;线程可以并行执行，比如一个Python程序完全可以做到:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;一个线程在输出:你好&lt;/li&gt;&#xA;&lt;li&gt;一个线程在输出:Hello&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;像这样一个程序在同一时间做两件乃至多件不同的事情，我们就称之为:多线程并行执行&#xA;Python的多线程可以通过threading模块来实现。&lt;/p&gt;&#xA;&lt;h1 id=&#34;代码&#34;&gt;&lt;a href=&#34;#%e4%bb%a3%e7%a0%81&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;代码&#xA;&lt;/h1&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; threading&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; time&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;f1&lt;/span&gt;(msg):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    _count &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;True&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        _count &lt;span style=&#34;color:#f92672&#34;&gt;+=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;msg&lt;span style=&#34;color:#e6db74&#34;&gt;}{&lt;/span&gt;time&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;time()&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;第&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;_count&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;次执行&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        time&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sleep(&lt;span style=&#34;color:#ae81ff&#34;&gt;0.5&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;f2&lt;/span&gt;(name):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    _count &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;True&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        _count &lt;span style=&#34;color:#f92672&#34;&gt;+=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;name&lt;span style=&#34;color:#e6db74&#34;&gt;}{&lt;/span&gt;time&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;time()&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;第&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;_count&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;次执行&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        time&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sleep(&lt;span style=&#34;color:#ae81ff&#34;&gt;0.5&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; __name__ &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;__main__&amp;#39;&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    args_1 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; (&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;呵呵&amp;#34;&lt;/span&gt;,)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    kwargs_1 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;cry&amp;#34;&lt;/span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    f1_target &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; threading&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Thread(target&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;f1,args&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;args_1)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    f2_target &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; threading&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Thread(target&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;f2,kwargs&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;kwargs_1)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    f1_target&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;start()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    f2_target&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;start()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;输出&#34;&gt;&lt;a href=&#34;#%e8%be%93%e5%87%ba&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;输出&#xA;&lt;/h1&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;呵呵1737027879.568585第1次执行&#xD;&#xA;cry1737027879.568984第1次执行&#xD;&#xA;呵呵1737027880.0688722第2次执行&#xD;&#xA;cry1737027880.0694304第2次执行&#xD;&#xA;cry1737027880.570115第3次执行&#xD;&#xA;呵呵1737027880.570115第3次执行&#xD;&#xA;cry1737027881.070405第4次执行&#xD;&#xA;呵呵1737027881.071373第4次执行&#xD;&#xA;cry1737027881.5711129第5次执行&#xD;&#xA;呵呵1737027881.571813第5次执行&#xD;&#xA;cry1737027882.071477第6次执行&#xD;&#xA;呵呵1737027882.072063第6次执行&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
        </item><item>
            <title>[Python]设计模式</title>
            <link>https://www.imcry.vip/post/321.html</link>
            <pubDate>Wed, 15 Jan 2025 02:39:00 +0800</pubDate>
            <guid>https://www.imcry.vip/post/321.html</guid>
            <description>&lt;p&gt;设计模式就是一种编程套路，使用特定的套路得到特定的效果。&lt;/p&gt;&#xA;&lt;h1 id=&#34;单例模式&#34;&gt;&lt;a href=&#34;#%e5%8d%95%e4%be%8b%e6%a8%a1%e5%bc%8f&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;单例模式&#xA;&lt;/h1&gt;&lt;h2 id=&#34;优点&#34;&gt;&lt;a href=&#34;#%e4%bc%98%e7%82%b9&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;优点&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;节省内存&lt;/li&gt;&#xA;&lt;li&gt;节省创建对象的开销&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;代码&#34;&gt;&lt;a href=&#34;#%e4%bb%a3%e7%a0%81&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;代码&#xA;&lt;/h2&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;dl.py&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;apple&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;pass&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pingguo &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; apple()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;设计模式-单例.py&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; dl &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; pingguo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pg1 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; pingguo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pg2 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; pingguo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(pg1)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(pg2)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;输出&#34;&gt;&lt;a href=&#34;#%e8%be%93%e5%87%ba&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;输出&#xA;&lt;/h2&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;dl.apple object at 0x00000534D057A090&amp;gt;&#xD;&#xA;&amp;lt;dl.apple object at 0x00000534D057A090&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;工厂模式&#34;&gt;&lt;a href=&#34;#%e5%b7%a5%e5%8e%82%e6%a8%a1%e5%bc%8f&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;工厂模式&#xA;&lt;/h1&gt;&lt;h2 id=&#34;优点-1&#34;&gt;&lt;a href=&#34;#%e4%bc%98%e7%82%b9-1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;优点&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;大批量创建对象的时候有统一的入口，易于代码维护&lt;/li&gt;&#xA;&lt;li&gt;当发生修改，仅修改工厂类的创建方法即可&lt;/li&gt;&#xA;&lt;li&gt;符合现实世界的模式，即由工厂来制作产品(对象)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;代码-1&#34;&gt;&lt;a href=&#34;#%e4%bb%a3%e7%a0%81-1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;代码&#xA;&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;animal&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;pass&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;dog&lt;/span&gt;(animal):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;pass&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;cat&lt;/span&gt;(animal):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;pass&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;pig&lt;/span&gt;(animal):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;pass&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;animalFactory&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;get_animal&lt;/span&gt;(self,animal_type:str):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; animal_type &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;d&amp;#39;&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; dog()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;elif&lt;/span&gt; animal_type &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;c&amp;#39;&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; cat()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;elif&lt;/span&gt; animal_type &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;p&amp;#39;&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; pig()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;dongwu &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; animalFactory()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;gou &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; dongwu&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get_animal(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;d&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mao &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; dongwu&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get_animal(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;c&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;zhu &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; dongwu&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get_animal(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;p&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(gou)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(mao)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(zhu)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;输出-1&#34;&gt;&lt;a href=&#34;#%e8%be%93%e5%87%ba-1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;输出&#xA;&lt;/h2&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;__main__.dog object at 0x0000020BD057A210&amp;gt;&#xD;&#xA;&amp;lt;__main__.cat object at 0x0000020BD057A390&amp;gt;&#xD;&#xA;&amp;lt;__main__.pig object at 0x0000020BD057A510&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
        </item><item>
            <title>[Python]装饰器</title>
            <link>https://www.imcry.vip/post/320.html</link>
            <pubDate>Tue, 14 Jan 2025 18:07:00 +0800</pubDate>
            <guid>https://www.imcry.vip/post/320.html</guid>
            <description>&lt;ul&gt;&#xA;&lt;li&gt;装饰器就是使用创建一个闭包函数，在闭包函数内调用目标函数。&lt;/li&gt;&#xA;&lt;li&gt;可以达到不改动目标函数的同时，增加额外的功能。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;写法&#34;&gt;&lt;a href=&#34;#%e5%86%99%e6%b3%95&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;写法&#xA;&lt;/h1&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;outer&lt;/span&gt;(func):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;inner&lt;/span&gt;():&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;开始延迟&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        func()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;延迟结束&amp;#39;&lt;/span&gt;) &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; inner&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;yanchi&lt;/span&gt;():&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; random&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; time&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    seconds &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; random&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;randint(&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;延迟&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;seconds&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;秒&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    time&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sleep(seconds)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;fn = outer(yanchi)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;fn()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 糖写法&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;@outer&lt;/span&gt;  &lt;span style=&#34;color:#75715e&#34;&gt;# 定义在目标函数之上，和第14行功能一致&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;yanchi_2&lt;/span&gt;():&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; random&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; time&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    seconds &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; random&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;randint(&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;延迟&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;seconds&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;秒&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    time&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sleep(seconds)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;yanchi_2()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;输出&#34;&gt;&lt;a href=&#34;#%e8%be%93%e5%87%ba&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;输出&#xA;&lt;/h1&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;开始延迟&#xD;&#xA;延迟2秒&#xD;&#xA;延迟结束&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
        </item><item>
            <title>[Python]初学闭包</title>
            <link>https://www.imcry.vip/post/319.html</link>
            <pubDate>Mon, 13 Jan 2025 22:59:00 +0800</pubDate>
            <guid>https://www.imcry.vip/post/319.html</guid>
            <description>&lt;ul&gt;&#xA;&lt;li&gt;无需定义全局变量即可实现通过函数，持续的访问、修改某个值&lt;/li&gt;&#xA;&lt;li&gt;闭包使用的变量的所用于在函数内，难以被错误的调用修改&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;缺点&#34;&gt;&lt;a href=&#34;#%e7%bc%ba%e7%82%b9&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;缺点&#xA;&lt;/h1&gt;&lt;ul&gt;&#xA;&lt;li&gt;由于内部函数持续引用外部函数的值,所以会导致这一部分内存空间不被释放,一直占用内存&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;代码&#34;&gt;&lt;a href=&#34;#%e4%bb%a3%e7%a0%81&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;代码&#xA;&lt;/h1&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ATM&lt;/span&gt;(balance):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;change&lt;/span&gt; (num,type&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;True&lt;/span&gt;) &lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt; int :&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;nonlocal&lt;/span&gt; balance    &lt;span style=&#34;color:#75715e&#34;&gt;# 使用nonlocal关键字修改外部函数的值&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; type &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;True&lt;/span&gt;:   &lt;span style=&#34;color:#75715e&#34;&gt;# 存钱&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            balance &lt;span style=&#34;color:#f92672&#34;&gt;+=&lt;/span&gt; num&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;lt;存款&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;num&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;元，当前余额:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;balance&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;:   &lt;span style=&#34;color:#75715e&#34;&gt;# 取钱&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            balance &lt;span style=&#34;color:#f92672&#34;&gt;-=&lt;/span&gt; num&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;lt;取款&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;num&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;元，当前余额:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;balance&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; balance  &lt;span style=&#34;color:#75715e&#34;&gt;# 返回修改后的余额&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; change&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;atm &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; ATM(&lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;atm(&lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;atm(&lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; range(&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    atm(x)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; range(&lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;20&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    atm(x,&lt;span style=&#34;color:#66d9ef&#34;&gt;False&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;res:int &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; atm(&lt;span style=&#34;color:#ae81ff&#34;&gt;200&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(res)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;结果&#34;&gt;&lt;a href=&#34;#%e7%bb%93%e6%9e%9c&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;结果&#xA;&lt;/h1&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;存款&amp;gt;10元，当前余额:110&#xD;&#xA;&amp;lt;存款&amp;gt;10元，当前余额:120&#xD;&#xA;&amp;lt;存款&amp;gt;1元，当前余额:121&#xD;&#xA;&amp;lt;存款&amp;gt;2元，当前余额:123&#xD;&#xA;&amp;lt;存款&amp;gt;3元，当前余额:126&#xD;&#xA;&amp;lt;存款&amp;gt;4元，当前余额:130&#xD;&#xA;&amp;lt;存款&amp;gt;5元，当前余额:135&#xD;&#xA;&amp;lt;存款&amp;gt;6元，当前余额:141&#xD;&#xA;&amp;lt;存款&amp;gt;7元，当前余额:148&#xD;&#xA;&amp;lt;存款&amp;gt;8元，当前余额:156&#xD;&#xA;&amp;lt;存款&amp;gt;9元，当前余额:165&#xD;&#xA;&amp;lt;取款&amp;gt;10元，当前余额:155&#xD;&#xA;&amp;lt;取款&amp;gt;11元，当前余额:144&#xD;&#xA;&amp;lt;取款&amp;gt;12元，当前余额:132&#xD;&#xA;&amp;lt;取款&amp;gt;13元，当前余额:119&#xD;&#xA;&amp;lt;取款&amp;gt;14元，当前余额:105&#xD;&#xA;&amp;lt;取款&amp;gt;15元，当前余额:90&#xD;&#xA;&amp;lt;取款&amp;gt;16元，当前余额:74&#xD;&#xA;&amp;lt;取款&amp;gt;17元，当前余额:57&#xD;&#xA;&amp;lt;取款&amp;gt;18元，当前余额:39&#xD;&#xA;&amp;lt;取款&amp;gt;19元，当前余额:20&#xD;&#xA;&amp;lt;存款&amp;gt;200元，当前余额:220&#xD;&#xA;220&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
        </item><item>
            <title>空间句法：使用Depthmap自动生成轴线及导出到CAD</title>
            <link>https://www.imcry.vip/post/depthmap_to_cad.html</link>
            <pubDate>Sun, 11 Jun 2023 17:13:00 +0800</pubDate>
            <guid>https://www.imcry.vip/post/depthmap_to_cad.html</guid>
            <description>&lt;h2 id=&#34;软件&#34;&gt;&lt;a href=&#34;#%e8%bd%af%e4%bb%b6&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;软件&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;UCL Depthmap （老版）&lt;/li&gt;&#xA;&lt;li&gt;AutoCAD&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;数据&#34;&gt;&lt;a href=&#34;#%e6%95%b0%e6%8d%ae&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;数据&#xA;&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://imcry.lanzouw.com/iHvnA0yvouqb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://imcry.lanzouw.com/iHvnA0yvouqb&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;生成轴线&#34;&gt;&lt;a href=&#34;#%e7%94%9f%e6%88%90%e8%bd%b4%e7%ba%bf&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;生成轴线&#xA;&lt;/h2&gt;&lt;p&gt;将dxf文件导入depthmap后，点击工具条上的&lt;code&gt;Axial Map&lt;/code&gt;，再点击图形中的道路区域&#xA;&lt;img alt=&#34;1.png&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://www.imcry.vip/usr/uploads/2023/06/4175381244.png&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;稍等片刻后将生成大量线段&#xA;&lt;img alt=&#34;2.png&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://www.imcry.vip/usr/uploads/2023/06/744698164.png&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;点击菜单栏 &lt;code&gt;Tools&lt;/code&gt;-&amp;gt;&lt;code&gt;Axial/Convex/Pesh&lt;/code&gt;-&amp;gt;&lt;code&gt;Reduce to Fewest Line Map&lt;/code&gt;&#xA;&lt;img alt=&#34;3.png&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://www.imcry.vip/usr/uploads/2023/06/2288715842.png&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;在左侧图层区域选择&lt;code&gt;Fewest-Line Map (Minimal)&lt;/code&gt;，并且关闭默认图层&#xA;&lt;img alt=&#34;4.png&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://www.imcry.vip/usr/uploads/2023/06/1452157366.png&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;这个时候大致的轴线图已经出来了，但仍存在少量瑕疵，需要将部分轴线进行修改&lt;/p&gt;&#xA;&lt;h2 id=&#34;移交cad&#34;&gt;&lt;a href=&#34;#%e7%a7%bb%e4%ba%a4cad&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;移交CAD&#xA;&lt;/h2&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;这里我以Depthmap导出后在CAD载入的方式进行演示，&#xA;由于depthampX系列的print功能缺失，故本次选用老版进行演示&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;将图形缩放成合适大小后，点击菜单栏 &lt;code&gt;File&lt;/code&gt;-&amp;gt;&lt;code&gt;Print&lt;/code&gt;&#xA;选择带有PDF的选项，点击确定&#xA;&lt;img alt=&#34;5.png&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://www.imcry.vip/usr/uploads/2023/06/475704002.png&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;打开CAD，点击左上角图标，选择 &lt;code&gt;输入&lt;/code&gt;-&amp;gt;&lt;code&gt;PDF&lt;/code&gt;&#xA;&lt;img alt=&#34;6.png&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://www.imcry.vip/usr/uploads/2023/06/2954106085.png&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;若未能弹出对话框，点击命令行中的 &lt;code&gt;文件&lt;/code&gt;&#xA;&lt;img alt=&#34;7.png&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://www.imcry.vip/usr/uploads/2023/06/2016406446.png&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;选择文件后会弹出一个窗口，直接确定即可&#xA;将背景删除，改变线段颜色后即可得到如图&#xA;&lt;img alt=&#34;8.png&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://www.imcry.vip/usr/uploads/2023/06/3770040149.png&#34;&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>空间句法：第一次轴线模型分析</title>
            <link>https://www.imcry.vip/post/277.html</link>
            <pubDate>Thu, 08 Jun 2023 11:15:00 +0800</pubDate>
            <guid>https://www.imcry.vip/post/277.html</guid>
            <description>&lt;h1 id=&#34;开始操作&#34;&gt;&lt;a href=&#34;#%e5%bc%80%e5%a7%8b%e6%93%8d%e4%bd%9c&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;开始操作&#xA;&lt;/h1&gt;&lt;p&gt;本文将以某村庄为例&lt;/p&gt;&#xA;&lt;h2 id=&#34;数据准备&#34;&gt;&lt;a href=&#34;#%e6%95%b0%e6%8d%ae%e5%87%86%e5%a4%87&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;数据准备&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;绘制好的轴线图(DXF格式)&lt;/li&gt;&#xA;&lt;li&gt;Depthmapx &lt;code&gt;0.6.0&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;相关下载&#34;&gt;&lt;a href=&#34;#%e7%9b%b8%e5%85%b3%e4%b8%8b%e8%bd%bd&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;相关下载&#xA;&lt;/h2&gt;&lt;p&gt;轴线模型：&lt;a class=&#34;link&#34; href=&#34;https://imcry.lanzouw.com/ilaBc0yljzid&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://imcry.lanzouw.com/ilaBc0yljzid&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;新建图层&#34;&gt;&lt;a href=&#34;#%e6%96%b0%e5%bb%ba%e5%9b%be%e5%b1%82&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;新建图层&#xA;&lt;/h2&gt;&lt;p&gt;打开软件，点击左上角菜单 &lt;code&gt;File-&amp;gt;New&lt;/code&gt; 来新建一个新的工程文件&#xA;接着点击软件菜单栏 &lt;code&gt;Map-&amp;gt;Import&lt;/code&gt;  来载入已经绘制好了的轴线图&lt;/p&gt;&#xA;&lt;p&gt;点击菜单栏 &lt;code&gt;Map→Convert Drawing Map&lt;/code&gt;，在弹出的对话框中的&lt;code&gt;New Map Type&lt;/code&gt;中选择&lt;code&gt;Axial Map&lt;/code&gt;，点击OK可以看到新生成了一个新的轴线图。&lt;/p&gt;&#xA;&lt;h2 id=&#34;轴线图计算分析&#34;&gt;&lt;a href=&#34;#%e8%bd%b4%e7%ba%bf%e5%9b%be%e8%ae%a1%e7%ae%97%e5%88%86%e6%9e%90&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;轴线图计算分析&#xA;&lt;/h2&gt;&lt;p&gt;在菜单栏处点击&lt;code&gt;Tools→Axial/Convex/Pesh→Run Graph Analysis&lt;/code&gt;，在弹出的对话框中设置参数如下：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Radius：拓扑半径的设定，输入时不同数字间用英文的逗号分隔开。表示在计算时，以某一个元素为中心进行空间映射，分别以“全系统、半径为3….”进行计算。&lt;/li&gt;&#xA;&lt;li&gt;其中下面三个方框选项：表示保留计算过程中的中间步骤&lt;/li&gt;&#xA;&lt;li&gt;第四个方框选项：表示对计算结果进行权重设定，即对计算结果的一种修正。只有将其选中，下面的&lt;code&gt;Weight by&lt;/code&gt;处才能进行设定，此处选择&lt;code&gt;Line Length&lt;/code&gt;作为权重。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;设置完毕后回车，得到结果&lt;/p&gt;&#xA;&lt;p&gt;此时，先不要急于分析结果，先将左侧的参数切换到&lt;code&gt;Node Count&lt;/code&gt;，如果此时出现的是绿色线，就表示模型没有错误，可以进行下一步分析。如若显示的是一片红色线中间夹杂着几条蓝色线，就说明模型中轴线有断开的地方，将其重新修正之后再进行之前的分析。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;检查无误后，将参数重新切换到&lt;code&gt;Integration[HH]&lt;/code&gt;。&lt;/li&gt;&#xA;&lt;li&gt;整合度高的轴线以红色显示，整合度低的轴线以蓝色显示。&lt;/li&gt;&#xA;&lt;li&gt;整合度高就表示该原色的可达性高。&lt;/li&gt;&#xA;&lt;li&gt;城市中那些整合度高的道路一般都是城市中的主要道路，分布些城市的重要功能。&lt;/li&gt;&#xA;&lt;li&gt;整合度高的道路集中的地方也就是整合度核心，一般都是城市的中心区域。&lt;/li&gt;&#xA;&lt;li&gt;对比一个城市不同时间的整合度核心，也就可以得到这个城市的发展主线。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;查看选择度&#34;&gt;&lt;a href=&#34;#%e6%9f%a5%e7%9c%8b%e9%80%89%e6%8b%a9%e5%ba%a6&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;查看选择度&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;将左侧的参数切换到&lt;code&gt;Choice&lt;/code&gt;上得到的就是该元素的选择度；&lt;/li&gt;&#xA;&lt;li&gt;将左侧的参数切换到&lt;code&gt;Choice[Norm]&lt;/code&gt;上得到的也是该元素的选择度，是对&lt;code&gt;Choice&lt;/code&gt;修正之后的结果；&lt;/li&gt;&#xA;&lt;li&gt;选择度表示的是一个元素被选择的潜力，在城市道路中，选择度越高的道路代表吸引穿越交通的潜力越高。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;23774&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://img-reg-ab.imagency.cn/e/b2eb84f0471f38bd8c12b62e3f646c36.png&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;查看全局深度&#34;&gt;&lt;a href=&#34;#%e6%9f%a5%e7%9c%8b%e5%85%a8%e5%b1%80%e6%b7%b1%e5%ba%a6&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;查看全局深度&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;将左侧的参数切换到&lt;code&gt;Total Depth&lt;/code&gt;上得到的就是该元素的全局深度；&lt;/li&gt;&#xA;&lt;li&gt;全局深度表示的是一个元素被到达的潜力，在城市道路中，全局深度越高代表吸引到达交通的潜力越低。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;23773&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://img-reg-ab.imagency.cn/e/c1e6dff66f97227fabee0ce37c55b1d0.png&#34;&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>学习小记：SketchUp</title>
            <link>https://www.imcry.vip/post/218.html</link>
            <pubDate>Mon, 04 Jul 2022 17:21:00 +0800</pubDate>
            <guid>https://www.imcry.vip/post/218.html</guid>
            <description>&lt;p&gt;===&lt;/p&gt;&#xA;&lt;p&gt;快捷键（&lt;em&gt;L&lt;/em&gt;），使用方法与&lt;strong&gt;AutoCAD&lt;/strong&gt;类似。&#xA;与轴平行：确定一个起点，然后使其与一条轴线颜色&#xA;指定数值：确定一个起点，输入数值（毫米）并观察右小角 &lt;em&gt;长度&lt;/em&gt; 编辑框的变化，回车。&#xA;特别注意，个别用户的初始化单位不同，例如单位为米，则需要以下操作&#xA;&lt;img alt=&#34;01.webp&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://www.imcry.vip/usr/uploads/2022/07/3440982622.webp&#34;&gt;&#xA;&lt;img alt=&#34;02.webp&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://www.imcry.vip/usr/uploads/2022/07/2113649227.webp&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;橡皮擦&#34;&gt;&lt;a href=&#34;#%e6%a9%a1%e7%9a%ae%e6%93%a6&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Ⅱ橡皮擦&#xA;&lt;/h1&gt;&lt;p&gt;快捷键（&lt;em&gt;E&lt;/em&gt;）&#xA;方法：滑动擦除、点击对象擦除&lt;/p&gt;&#xA;&lt;h1 id=&#34;矩形&#34;&gt;&lt;a href=&#34;#%e7%9f%a9%e5%bd%a2&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Ⅲ矩形&#xA;&lt;/h1&gt;&lt;p&gt;快捷键（&lt;em&gt;R&lt;/em&gt;）&#xA;指定长宽：确定一个起点，输入长宽的数值并用英文逗号&lt;code&gt;,&lt;/code&gt;隔开两者，例如 &lt;code&gt;2000,3000&lt;/code&gt;&#xA;切换绘制平面：单机键盘方向&lt;em&gt;左键&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;圆&#34;&gt;&lt;a href=&#34;#%e5%9c%86&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Ⅳ圆&#xA;&lt;/h1&gt;&lt;p&gt;快捷键（&lt;em&gt;C&lt;/em&gt;）&#xA;边数：决定这个对象的平滑程度，边数越大则越平滑&#xA;修改边数：在确定起点前输入数值并回车&#xA;指定半径：确定一个起点，然后输入指定数值并回车&lt;/p&gt;&#xA;&lt;h1 id=&#34;多边形&#34;&gt;&lt;a href=&#34;#%e5%a4%9a%e8%be%b9%e5%bd%a2&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Ⅴ多边形&#xA;&lt;/h1&gt;&lt;p&gt;修改边数：在确定起点前输入数值并回车&lt;/p&gt;&#xA;&lt;h1 id=&#34;移动&#34;&gt;&lt;a href=&#34;#%e7%a7%bb%e5%8a%a8&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Ⅵ移动&#xA;&lt;/h1&gt;&lt;p&gt;快捷键（&lt;em&gt;M&lt;/em&gt;）&#xA;方法：鼠标选中后拖动、指定位移、拷贝&#xA;拷贝：&#xA;① 延展拷贝：按下&lt;em&gt;Ctrl&lt;/em&gt;后选中一个对象，输入指定数值，确定第一个副本的位置后可以输入&lt;code&gt;*6&lt;/code&gt;，代表间隔指定数值继续复制6个此对象&#xA;② 范围拷贝：按下&lt;em&gt;Ctrl&lt;/em&gt;后选中一个对象，输入指定数值，确定第一个副本的位置将作为边界，输入&lt;code&gt;/6&lt;/code&gt;，代表在你所确定的范围内系统自动计算间隔继续复制5个此对象。&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>使用Windows自带的虚拟机：Hyper-V</title>
            <link>https://www.imcry.vip/post/91.html</link>
            <pubDate>Fri, 10 Jul 2020 18:43:00 +0800</pubDate>
            <guid>https://www.imcry.vip/post/91.html</guid>
            <description>&lt;p&gt;打开 设置-Windows功能 开启Hyper-V功能。&#xA;![Windows功能][1]&#xA;这里我将使用&lt;strong&gt;Centos 7.8&lt;/strong&gt;系统进行安装演示&#xA;系统下载地址：[http://mirrors.aliyun.com/centos/7.8.2003/isos/x86_64/CentOS-7-x86_64-DVD-2003.iso][2]&lt;/p&gt;&#xA;&lt;h2 id=&#34;启动hyper-v&#34;&gt;&lt;a href=&#34;#%e5%90%af%e5%8a%a8hyper-v&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;启动Hyper-V&#xA;&lt;/h2&gt;&lt;p&gt;在&lt;strong&gt;开始菜单&lt;/strong&gt;里打开Hyper-V&#xA;![Hyper-V][3]&lt;/p&gt;&#xA;&lt;h2 id=&#34;进入新建虚拟机向导&#34;&gt;&lt;a href=&#34;#%e8%bf%9b%e5%85%a5%e6%96%b0%e5%bb%ba%e8%99%9a%e6%8b%9f%e6%9c%ba%e5%90%91%e5%af%bc&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;进入新建虚拟机向导&#xA;&lt;/h2&gt;&lt;p&gt;点击侧边栏中的 &lt;strong&gt;新建-虚拟机&lt;/strong&gt;&#xA;![02.webp][4]&lt;/p&gt;&#xA;&lt;p&gt;进行虚拟机名称和安装位置的设置&#xA;![03.webp][5]&lt;/p&gt;&#xA;&lt;p&gt;指定代数默认选择&lt;strong&gt;第一代&lt;/strong&gt;&#xA;![04.webp][6]&lt;/p&gt;&#xA;&lt;p&gt;分配内存可以勾选动态内存，系统会自动给虚拟机分配内存&#xA;![05.webp][7]&lt;/p&gt;&#xA;&lt;p&gt;配置网络选择&lt;strong&gt;Default Switch&lt;/strong&gt;&#xA;![06.webp][8]&lt;/p&gt;&#xA;&lt;p&gt;选择&lt;strong&gt;创建虚拟硬盘&lt;/strong&gt;，硬盘的大小可根据需要设置，我比较喜欢调成20GB&#xA;![07.webp][9]&lt;/p&gt;&#xA;&lt;p&gt;选择&lt;strong&gt;从可启动的CD/DVD-ROM安装操作系统&lt;/strong&gt;，再选择&lt;strong&gt;映像文件&lt;/strong&gt;，填写下载的 &lt;strong&gt;Centos 7.8&lt;/strong&gt; iso文件&#xA;![08.webp][10]&lt;/p&gt;&#xA;&lt;p&gt;最后检查下虚拟机配置，点击完成&#xA;![09.webp][11]&lt;/p&gt;&#xA;&lt;h2 id=&#34;安装系统前的准备&#34;&gt;&lt;a href=&#34;#%e5%ae%89%e8%a3%85%e7%b3%bb%e7%bb%9f%e5%89%8d%e7%9a%84%e5%87%86%e5%a4%87&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;安装系统前的准备&#xA;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Hyper-V&lt;/strong&gt;主界面中间有个虚拟机的列表，选中刚才创建的虚拟机并右键单击，点击&lt;strong&gt;连接&lt;/strong&gt;&#xA;![10.webp][12]&lt;/p&gt;&#xA;&lt;p&gt;点击&lt;strong&gt;启动&lt;/strong&gt;&#xA;![11.webp][13]&lt;/p&gt;&#xA;&lt;p&gt;点击虚拟机界面，用键盘的上下方向键（↑ ↓）进行操作&#xA;如图，基本全白的文字代表已被选中，这里要选择&lt;strong&gt;Install CentOS&lt;/strong&gt;，回车，稍等片刻&#xA;![12.webp][14]&lt;/p&gt;&#xA;&lt;h2 id=&#34;安装centos系统&#34;&gt;&lt;a href=&#34;#%e5%ae%89%e8%a3%85centos%e7%b3%bb%e7%bb%9f&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;安装Centos系统##&#xA;&lt;/h2&gt;&lt;p&gt;进入安装页面的第一件事情就是选择语言，中文简体，你懂的&#xA;![13.webp][15]&lt;/p&gt;&#xA;&lt;p&gt;点击&lt;strong&gt;网络和主机名&lt;/strong&gt;&#xA;![14.webp][16]&lt;/p&gt;&#xA;&lt;p&gt;打开右上角的开关，记住虚拟机的IP地址，方便后续操作&#xA;![14.5.webp][17]&lt;/p&gt;&#xA;&lt;p&gt;点击&lt;strong&gt;安装位置&lt;/strong&gt;&#xA;![15.webp][18]&lt;/p&gt;&#xA;&lt;p&gt;直接点击完成（走个过场）&#xA;![16.webp][19]&lt;/p&gt;&#xA;&lt;p&gt;点击开始安装&#xA;![17.webp][20]&lt;/p&gt;&#xA;&lt;p&gt;从界面中可以观察到系统已经在进行安装操作了，安装的同时可以&lt;strong&gt;设置密码&lt;/strong&gt;和&lt;strong&gt;创建用户&lt;/strong&gt;&#xA;![18.webp][21]&lt;/p&gt;&#xA;&lt;p&gt;几分钟后提示安装完成，点击&lt;strong&gt;重启&lt;/strong&gt;&#xA;![19.webp][22]&lt;/p&gt;&#xA;&lt;h2 id=&#34;ssh连接虚拟机&#34;&gt;&lt;a href=&#34;#ssh%e8%bf%9e%e6%8e%a5%e8%99%9a%e6%8b%9f%e6%9c%ba&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;SSH连接虚拟机&#xA;&lt;/h2&gt;&lt;p&gt;这里我用的是宝塔远程连接工具，&#xA;服务器IP填虚拟机的内网地址，如果没有创建用户的话用户名就填root，密码如果没设置留空即可&#xA;连接成功，如图&#xA;![20.webp][23]&lt;/p&gt;&#xA;&lt;p&gt;复制宝塔面板的安装命令&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;yum install -y wget &amp;amp;&amp;amp; wget -O install.sh http://download.bt.cn/install/install_6.0.sh &amp;amp;&amp;amp; sh install.sh&#xD;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;在SSH界面中单击右键（粘贴的操作），回车&lt;/p&gt;&#xA;&lt;p&gt;安装成功后提示如下图，&#xA;Bt-Panel是面板地址（这里把原先那串IP替换成虚拟机的内网地址），&#xA;username是宝塔用户名，&#xA;password是宝塔密码&#xA;![22.webp][26]&lt;/p&gt;&#xA;&lt;h2 id=&#34;结束&#34;&gt;&lt;a href=&#34;#%e7%bb%93%e6%9d%9f&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;结束&#xA;&lt;/h2&gt;&lt;p&gt;后续的操作会更加有趣&amp;hellip;&amp;hellip;&#xA;[1]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/916417444.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/916417444.webp&lt;/a&gt;&#xA;[2]: &lt;a class=&#34;link&#34; href=&#34;http://mirrors.aliyun.com/centos/7.8.2003/isos/x86_64/CentOS-7-x86_64-DVD-2003.iso&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;http://mirrors.aliyun.com/centos/7.8.2003/isos/x86_64/CentOS-7-x86_64-DVD-2003.iso&lt;/a&gt;&#xA;[3]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/678555578.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/678555578.webp&lt;/a&gt;&#xA;[4]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/2838803164.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/2838803164.webp&lt;/a&gt;&#xA;[5]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/3858776147.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/3858776147.webp&lt;/a&gt;&#xA;[6]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/678400665.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/678400665.webp&lt;/a&gt;&#xA;[7]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/2316249582.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/2316249582.webp&lt;/a&gt;&#xA;[8]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/1434088440.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/1434088440.webp&lt;/a&gt;&#xA;[9]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/3056988832.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/3056988832.webp&lt;/a&gt;&#xA;[10]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/4268917899.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/4268917899.webp&lt;/a&gt;&#xA;[11]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/3972582907.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/3972582907.webp&lt;/a&gt;&#xA;[12]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/3322890046.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/3322890046.webp&lt;/a&gt;&#xA;[13]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/1797721442.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/1797721442.webp&lt;/a&gt;&#xA;[14]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/601462032.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/601462032.webp&lt;/a&gt;&#xA;[15]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/3698049981.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/3698049981.webp&lt;/a&gt;&#xA;[16]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/3085234550.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/3085234550.webp&lt;/a&gt;&#xA;[17]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/402238580.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/402238580.webp&lt;/a&gt;&#xA;[18]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/262899217.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/262899217.webp&lt;/a&gt;&#xA;[19]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/1813834367.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/1813834367.webp&lt;/a&gt;&#xA;[20]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/2681803178.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/2681803178.webp&lt;/a&gt;&#xA;[21]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/3780451598.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/3780451598.webp&lt;/a&gt;&#xA;[22]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/4102574371.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/4102574371.webp&lt;/a&gt;&#xA;[23]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/3700007738.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/3700007738.webp&lt;/a&gt;&#xA;[26]: &lt;a class=&#34;link&#34; href=&#34;https://www.imcry.vip/usr/uploads/2021/07/3304013257.webp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.imcry.vip/usr/uploads/2021/07/3304013257.webp&lt;/a&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Typecho文章里的超链接用新标签页打开</title>
            <link>https://www.imcry.vip/post/41.html</link>
            <pubDate>Mon, 11 May 2020 13:42:00 +0800</pubDate>
            <guid>https://www.imcry.vip/post/41.html</guid>
            <description>&lt;p&gt;Typecho的文章中的超链接通常是以当前标签页打开，还没阅读完的内容就这样飞了&lt;/p&gt;&#xA;&lt;p&gt;以 &lt;strong&gt;Typecho 1.1&lt;/strong&gt; 版本为例&#xA;打开 &lt;code&gt;var/HyperDown.php&lt;/code&gt; ，目标第&lt;strong&gt;398&lt;/strong&gt;行&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;$self&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_definitions&lt;/span&gt;[$matches[&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;]]&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;$escaped&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;/a&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;将其修改为：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;target&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;_blank&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; href=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;$self&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_definitions&lt;/span&gt;[$matches[&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;]]&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;$escaped&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;/a&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
        </item><item>
            <title>几个去授权的服务器面板</title>
            <link>https://www.imcry.vip/post/31.html</link>
            <pubDate>Mon, 04 May 2020 02:28:00 +0800</pubDate>
            <guid>https://www.imcry.vip/post/31.html</guid>
            <description>&lt;ul&gt;&#xA;&lt;li&gt;AMH5.8 极速安装支持的系统支持CentOS、Ubuntu、Debian 已发行的所有版本&lt;/li&gt;&#xA;&lt;li&gt;kangle集成脚本支持CentOS 6.x/CentOS 7.x系统&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;amh55-极速安装&#34;&gt;&lt;a href=&#34;#amh55-%e6%9e%81%e9%80%9f%e5%ae%89%e8%a3%85&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;AMH5.5 极速安装：&#xA;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;wget http://amh.54or.com/amh.sh &amp;amp;&amp;amp; bash amh.sh 2&amp;gt;&amp;amp;1 | tee amh.log&#xD;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;amh58-极速安装&#34;&gt;&lt;a href=&#34;#amh58-%e6%9e%81%e9%80%9f%e5%ae%89%e8%a3%85&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;AMH5.8 极速安装：&#xA;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;wget http://amh.54or.com/amh2.sh &amp;amp;&amp;amp; bash amh2.sh 2&amp;gt;&amp;amp;1 | tee amh.log&#xD;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;kangle集成脚本&#34;&gt;&lt;a href=&#34;#kangle%e9%9b%86%e6%88%90%e8%84%9a%e6%9c%ac&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;kangle集成脚本：&#xA;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;yum -y install wget;wget http://kangle.odata.cc/start;sh start&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;</description>
        </item></channel>
</rss>
