擅长:python、mysql、java
<p>一种方法是为实例化对象的不同方式创建具有不同名称的类方法:</p>
<pre><code>class Text(object):
def __init__(self, data):
# handle data in whatever "basic" form you need
@classmethod
def fromFiles(cls, files):
# process list of filenames into the form that `__init__` needs
return cls(processed_data)
@classmethod
def fromSentences(cls, sentences):
# process list of Sentence objects into the form that `__init__` needs
return cls(processed_data)
</code></pre>
<p>这样,您只需创建一个“real”或“canonical”初始化方法,该方法接受您想要的任何“最小公分母”格式。专用的<code>fromXXX</code>方法可以对不同类型的输入进行预处理,以将它们转换为传递给规范实例化所需的形式。其思想是调用<code>Text.fromFiles(...)</code>从文件名生成<code>Text</code>,或调用{<cd4>}从句子对象生成<code>Text</code>。在</p>
<p>如果您只想接受几种可枚举类型的输入之一,也可以接受一些简单的类型检查。例如,类接受文件名(作为字符串)或file对象并不少见。在这种情况下,你应该:</p>
^{pr2}$
<p>如果有许多不同类型的输入要处理,这会变得很难处理,但是如果它是这样相对包含的东西(例如,可以用来获取对象的对象或字符串“name”),那么它可能比我展示的第一个方法更简单。在</p>