擅长:python、mysql、java
<p>提出的解决方案不是一种实现你想要的东西的可靠方法;它依赖于<code>lena</code>和<code>link</code>是全局定义的这一事实。例如,如果它们移动到另一个函数中,那么您将无法<code>eval()</code>这些字符串。此外,仅仅为了使字符串可用,并不需要将字符串作为代码执行。如果要传递一个包含多个数据/信息的对象,只需创建一个类来保存这两个内容,并传递该类的实例即可。下面是一个简单的例子:</p>
<pre class="lang-py prettyprint-override"><code>class PathedImage:
def __init__(self, path):
self.image = cv2.imread(path)
self.path = path
def plotColor(image):
plt.figure()
plt.imshow(cv2.cvtColor(image.image, cv2.COLOR_BGR2RGB))
plt.title(image.path)
lena = PathedImage("lena.png")
link = PathedImage("link.png")
plotColor(lena)
plotColor(link)
</code></pre>
<p>如果你愿意,你可以在这里得到更多的幻想;例如,<code>PathedImage</code>可以对numpy数组进行子类化,使其行为与numpy数组完全相同,但添加了<code>name</code>或<code>path</code>属性</p>