3
3

More than 3 years have passed since last update.

Pythonって可読性が低くない?

Last updated at Posted at 2019-11-16

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が与えられたとしても、特にエラーが起こるわけではないので注意です。

実行する側にリテラシーが求められるわけですね、気をつけます。

最後に

コード量増えてるやないか!!!ってのはわかります。スマートに描きたいですよね。でも、秘伝のタレ的コードを作るより、よっぽどマシだと思うのです。もし、お強い方がそんなやり方より、もっといいのがあるでってご教授いただけるなら、是非ともよろしくお願いします。

少しでも共感してくれる人がでてくれれば嬉しいですし、より良い方法を指摘してくださるなら、もっと嬉しいです。

では、駄文失礼いたしました

3
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3