擅长:python、mysql、java
<p>您可以将打开文件封装在<code>classmethod</code>中。你知道吗</p>
<pre><code>class ClassA():
@classmethod
def open_nasty_file(cls):
cls.nasty_file = open('file_path', 'file_mode')
def do_stuff(self):
if not hasattr(self, 'nasty_file'):
self.open_nasty_file()
</code></pre>
<p>这种方法依赖于这样一个事实:如果在实例上找不到属性,属性查找将尝试在类上查找属性。你知道吗</p>
<p>如果希望在实例化第一个实例时打开它,可以将此检查/实例化放在<code>__init__</code>函数中。你知道吗</p>
<p><strong>请注意,此方法将使文件保持打开状态,因此需要在某个时候关闭文件。</strong></p>