のようなクラスをインスタンス化する際に、私はエラーを取得していますかかります問題を引き起こしている可能性があります。 私のようなクラスを呼び出す:抽象基底クラス(ABC)を与えるエラー(__ __new)は、正確に4つの引数(2は、与えられた)
from crawler.GoogleCrawler import GoogleCrawler
if __name__ == '__main__':
#w = GoogleCrawler(search_key='PKK')
GoogleCrawler('foods')
ここではコードです:
BaseCrawler.py
class BaseCrawler(ABCMeta):
def __init__(self, search_key='', **kwargs):
if type(search_key) == str:
if search_key == '':
search_key = 'Kabe'
self.g_search_key_list = [search_key]
code continues ...
GoogleCrawler.pyは、あなたは、Python 2.xでは
from BaseCrawler import BaseCrawler
class GoogleCrawler(BaseCrawler):
def __init__(self, search_key='', **kwargs):
super().__init__(search_key, **kwargs)
# google search specific url parameters
self.search_url_prefix = kwargs.get('search_url_prefix', 'https://www.google.com.sg/search?q=')
self.search_url_postfix = kwargs.get('search_url_postfix','&source=lnms&tbm=isch&sa=X&ei=0eZEVbj3IJG5uATalICQAQ&ved=0CAcQ_AUoAQ&biw=939&bih=591')
# show more options
# options : 'id','class'
self.show_more_find_type = kwargs.get('show_more_find_type', 'id')
self.show_more_find_value = kwargs.get('show_more_find_value', 'smb')
code continues ...
'class BaseCrawler(ABCMeta):'は、メタクラスとして使用するのではなく、 'ABCMeta'から継承しています。 – user2357112
クラスBaseCrawler(metaclass = ABCMeta)を使用している場合:その構文は無効です、推奨事項はありますか? –
あなたはどのバージョンのPythonを使用していますか?なぜ、抽象基本クラスを最初に使用しようとしているのですか? –