<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Python on zeroicey</title><link>https://zeroicey.me/en/tags/python/</link><description>Recent content in Python on zeroicey</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Thu, 21 May 2026 01:40:00 +0800</lastBuildDate><atom:link href="https://zeroicey.me/en/tags/python/index.xml" rel="self" type="application/rss+xml"/><item><title>Exploring Interfaces in Python Programming</title><link>https://zeroicey.me/en/posts/python-explore-programming-interface/</link><pubDate>Thu, 21 May 2026 01:40:00 +0800</pubDate><guid>https://zeroicey.me/en/posts/python-explore-programming-interface/</guid><description>&lt;h1 id="why-interfaces-are-needed"&gt;
 Why Interfaces Are Needed
 &lt;a class="heading-link" href="#why-interfaces-are-needed"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;As project scale continues to grow, we need to adapt to more and more third-party packages and libraries. At the same time, we need to consider extensibility and replaceability. Replaceability is particularly important because it allows us to easily switch between different providers. Typical examples include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Computer hardware drivers&lt;/strong&gt;: For the same functionality like network or audio, we can use different network cards, microphones, and speakers&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LLM providers&lt;/strong&gt;: We can use different large language models in the same service. For example, &lt;code&gt;Openclaw&lt;/code&gt; can switch between different models&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Database selection&lt;/strong&gt;: All perform CRUD operations, but we can switch between different databases&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;However, different network cards, speakers, or microphones come from different manufacturers with different internal implementations. Various LLMs (Qwen, ChatGPT, Claude) have different input/output formats. How do we maintain compatibility with all providers?&lt;/p&gt;</description></item></channel></rss>