擅长:python、mysql、java
<p>Python不会隐式地进行类型转换。它确实提供了<code>__str__</code>魔术方法之类的功能,但这种转换仍然需要显式调用<code>str()</code>函数</p>
<p>我认为,您要做的是将键入保留为<code>CallerSurface</code>,并使用静态类型检查器强制调用方执行以下操作(例如):</p>
<pre><code> caller_name = HTTPUtils.extractCallerFromUserAgent(request)
response = getResponse(other_data, CallerSurface(caller_name))
</code></pre>
<p>使用类型检查器(例如<code>mypy</code>)是关键,因为这使得不可能忘记<code>CallerSurface</code>调用(或者需要进行的任何其他类型的转换)</p>