擅长:python、mysql、java
<p>我以前用于提供多个构造函数的模式是使用<code>classmethod</code>s:</p>
<pre><code>class TweetExplorer:
CLEAN_OUTPUT_PATH = constants.CLEAN_OUTPUT_PATH
API_ACCESS = 0
def __init__(self):
self.OUTPUT_PATH = constants.OUTPUT_PATH
self.CLEAN_OUTPUT_PATH = constants.OUTPUT_PATH
self.API_KEY = ''
self.API_SECRET_KEY = ''
self.ACCESS_TOKEN = ''
self.ACCESS_TOKEN_SECRET = ''
@classmethod
def with_credentials(cls, api_key, api_secret_key, access_token, access_token_secret):
obj = cls()
obj.API_KEY = api_key
obj.API_SECRET_KEY = api_secret_key
obj.ACCESS_TOKEN = access_token
obj.ACCESS_TOKEN_SECRET = access_token_secret
try:
obj.check_access()
except Exception as ex:
print(ex)
return obj
</code></pre>
<p>现在您可以在没有任何参数的情况下初始化<code>TweetExplorer</code></p>
<pre><code>TweetExplorer()
</code></pre>
<p>还是有信誉</p>
<pre><code>TweetExplorer.with_credentials(api_key, api_secret_key, access_token, access_token_secret)
</code></pre>