@classmethodの使い方について。
以下のような使い方が妥当なのかが知りたいです。ほかに気になった点があれば指摘してください。私はプログラミング初学者のため、みなさんのご意見が聞きたいです。
ブログサイトに画像のまとめがありますが、その画像を拾い集めるプログラムを**学習目的**で作成しています。それに必要なモジュールとして作成しました。
よろしくおねがいします。
URLをパースして返すクラスです。
python
1from LinkManager import UrlParse_to_tuple 2 3UrlParse_to_tuple.add_parsing_link(['https://example.com/54568.html']) 4# [('https://example.com/54568.html', 'example.com', '54568')]
python
1from urllib.parse import urlparse 2from urllib.parse import unquote 3 4class UrlParse_to_tuple: 5 6 @classmethod 7 def to_parse(cls, url): 8 r = urlparse(url) 9 domain = r.netloc 10 if r.query: 11 # example.com/?q=132020 12 query = r.query.split('=')[-1] 13 return url, domain, query 14 else: 15 if r.path and r.path.endswith('.html'): 16 # example.com/archive/432523.html 17 path = r.path.split('/')[-1].split('.')[0] 18 return url, domain, path 19 else: 20 # example.com/<%エンコードされてる場合> 21 path = unquote(r.path.strip('/')) 22 return url, domain, path 23 24 @classmethod 25 def add_parsing_link(cls, url): 26 parsed_list = [] 27 for u in url: 28 parsed_url = cls.to_parse(u) 29 parsed_list.append(parsed_url) 30 return parsed_list 31 32if __name__ == "__main__": 33 main() 34
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/05 07:24