Pythonは見づらい
最近、JavaとかGolangを触ったのちに、解析や機械学習系のPythonコードを漁っていて思うのですが、
Pythonって見づらくないですか?
Pythonの歴が浅いので、もしかしたら見やすいのかもしれませんが、私には少なくとも見づらいです。
何が見づらいって、
引数や戻り値に型がない
部分ですよ。これで結局何が入った変数なのかがわかりません。
命名がアレな引数や戻り値をみると、もう絶望して、正直読む気が失せます。
個人的にこうしたい
幸い、型ヒントというものがPython3.5から導入されているので、使っていきたい。いきたくない?
具体的には下記のようにしていきたいです。突発に思いついた例で、ぶっちゃけいけてないが、雰囲気だけ感じ取ってほしいです。
Before
def create_article(article_id, title):
article = {"id": article_id, "title": title}
return article
->
After
class Article:
def __init__(self, **kwargs):
self.id = kwargs.get('id')
self.title = kwargs.get('title')
def create_article(article_id: int, title: str) -> Article:
article = Article(**{"id": article_id, "title": title})
return article
上記のように、型ヒントを与えつつ、いたずらにdictを使わず、記載してほしいなあという気持ちです。こうすればだいぶ可読性は上がるはず。
型ヒントを与えることによって、titleってstrなんだとかがわかり(titleでstr以外いれるわけねえやろってツッコミはおいておき)、戻り値をdict使わずにClassをちゃんと定義してから与えれば、なんとなくどういうものかわかります。dictって便利だけど、何入ってるかわかりづらいっす。
ただ、私と同じような初学者に注意してほしいのが、あくまで「型ヒント」だということ。
実行中には、このarticle_idにfloatが与えられたとしても、特にエラーが起こるわけではないので注意です。
実行する側にリテラシーが求められるわけですね、気をつけます。
最後に
コード量増えてるやないか!!!ってのはわかります。スマートに描きたいですよね。でも、秘伝のタレ的コードを作るより、よっぽどマシだと思うのです。もし、お強い方がそんなやり方より、もっといいのがあるでってご教授いただけるなら、是非ともよろしくお願いします。
少しでも共感してくれる人がでてくれれば嬉しいですし、より良い方法を指摘してくださるなら、もっと嬉しいです。
では、駄文失礼いたしました