<p>我不确定您到底想要什么,但基于您的问题,这里有两个可能的用例:</p>
<h2>您需要一个简单的探测对象列表,该列表由初始化参数列表生成:</h2>
<p>最直接的方法是将iterable解包操作符(<code>*</code>)与<a href="https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions" rel="nofollow noreferrer">list comprehension</a>结合使用:</p>
<pre><code>probe_list = [["Probe1", 430, 8],["Probe2", 430, 9],["Probe3", 430, 10]]
probe_obj_list = [max31865(*probe) for probe in probe_list]
</code></pre>
<p>现在可以对列表中的每个对象调用<code>readTemp()</code>,如下所示:</p>
<pre><code>probe_obj_list[1].readTemp() # Read the temperature of the second object
</code></pre>
<p>或者循环进行:</p>
<pre><code>for probe in probe_obj_list:
probe.readTemp()
</code></pre>
<h2>您希望能够按名称查找探测对象:</h2>
<p>考虑使用<a href="https://docs.python.org/3/library/stdtypes.html?highlight=map#mapping-types-dict" rel="nofollow noreferrer">dictionary</a>(也称为map)。你知道吗</p>
<pre><code>probe_list = [["Probe1", 430, 8],["Probe2", 430, 9],["Probe3", 430, 10]]
probe_obj_map = {probe[0] : max31865(*probe) for probe in probe_list} # Dict comprehension
</code></pre>
<p>现在可以按名称访问探测对象,如下所示:</p>
<pre><code>probe_obj_map["Probe1"].readTemp() # Accessing the object mapped to by the string "Probe1"
</code></pre>
<p>如果需要循环<code>probe_list</code>并按名称查找对象,则可以(尽管我不确定为什么需要这样做):</p>
<pre><code>for probe_args in probe_list:
probe_obj_map[probe_args[0]].readTemp() # Access the object mapped to by the first argument of the nested list (i.e. the name)
</code></pre>