<p>这里有多个问题:</p>
<ol>
<li>如果你<code>from Graph import *</code>(这是一个糟糕的开始),你会把<code>Graph</code>带入你的名字空间。但是,<code>ReadGraph</code>在</em><code>Graph</code>内,所以要访问它,您需要<code>Graph.ReadGraph</code>。你知道吗</li>
<li>完成之后,您尝试调用<code>Dfs.ProcessGraph(testcase.txt,verbose=True)</code>。第一个参数被解释为“传递名称<code>testcase</code>引用的对象的<code>txt</code>属性,该属性不存在。相反,您指的是<code>"testcase.txt"</code>(加引号使其成为字符串)。你知道吗</li>
<li>完成所有这些之后,您将得到例如<code>TypeError: unbound method ProcessGraph() must be called with Dfs instance as first argument (got str instance instead)</code>。调用实例方法时,第一个参数<code>self</code>按约定是实例本身。您有两种选择:要么a)使例如<code>ProcessGraph</code>a <code>@staticmethod</code>,并访问它<code>Graph.ReadGraph</code>;要么b)将它移到类之外,然后您可以像最初尝试的那样直接访问它。因为您似乎没有任何类或实例属性,所以不清楚为什么要处理这些类。你知道吗</li>
</ol>
<p>它应该是什么样子的:</p>
<pre><code>import sys
from Graph import read_graph
def process_graph(file_name, verbose):
g = read_graph(file_name)
</code></pre>
<p><code>Graph.py</code>模块(注意缺少<code>class Graph</code>):</p>
<pre><code>def read_graph(file_name):
...
</code></pre>
<p>(一般来说,我建议你读<a href="http://legacy.python.org/dev/peps/pep-0008/" rel="nofollow">PEP 8</a>)。你知道吗</p>