投稿

ラベル(Python)が付いた投稿を表示しています

May 20, 2018 Pycon mini Osakaに参加してきました!

イメージ
皆さん、どうもお久しぶりです。 今日の本題は、Pycon mini Osakaです!昨日グランフロント大阪で行われたイベントですが、Frodoも参加していました。素晴らしいイベントだったので、その片鱗でもお伝えできれば幸いです。 会場のヤフー株式会社の大阪グランフロントオフィスへ行くと、「けんさく」と「えんじん」がお出迎え。 彼ら(?)はヤフー公式キャラクターです。(存在を知らなかったなんて言う事実はないです) オフィスからの眺めもよく、写真撮影し忘れたことを激しく後悔しました。 すべての紹介はできないので、少しだけトークの紹介をば。流石はPythonというべきか、機械学習系のトークが非常に多かったです。 この写真はCharacter-level CNNというトークの写真。講演されたtdual(ティー デュアル)さん、見切れてて申し訳ないです...! 講義の内容は、文章の機械学習において文字レベルでの学習と単語レベルの学習を比べるもの。機械学習の解説を軽くしてから本題に入ったので初心者にも非常にわかりやすい内容でした。 また、Pythonで静的型検査に関するトピックも。写真が分かりにくくて申し訳ないです...。 mypyなど静的型検査ライブラリの存在やPEP 484に定義された型アノテーションなど存在は知っていたのですが、積極的に使おうと思ったことはありませんでした。この講義では、静的型検査をするメリットや型検査の方法などをわかりやすく解説していたので、自分でもやってみたほうがいいかなぁ?と思いました(やるとは言っていない)。 続いてはLT(ライトニングトーク)。 トップバッターはメインスポンサーのTech Bureau(テックビューロ)からです!テックビューロといえば、Zaif位しか知りませんでしたけれど、いろいろやってたんですね。 プライベートブロックチェインソリューションなど、テックビューロさんが展開しているコンテンツの紹介でした。人事部の人ということで求人もしていたのですが、労働環境の良さに驚きました。 PyconJP 2018の紹介も。すでに日程が決まっていたんですね。PyconJP 2018行きたいけど東京なんですよね...。つらい。 興味がある方は行ってみてはいかがでしょうか。 総評としては、関西...

January 15, 2018 あけましておめでとうのPython

皆様あけましておめでとうございます!新年一発目はFrodoのPython! あけおめには少し、いやかなり遅い気がしないでもないですが。 で、本題。この前Javaで某MinecraftのModを作っていて思ったのですが、JavaとかC#にはオーバーロードってあるじゃないですか。Pythonは関数がオブジェクトという言語なんで同じ名前で引数違い、例えばこんなのは上書きされてしまい、期待通りの動作をしてくれません。 まあ、当たり前です。同一名前空間上に同じ名前の変数が定義できないのと一緒ですね。 じゃあ、どんな風になればよいのか?例えば、Javaでの例を出すと、こんな風になればいいのです。 ですが、Pythonでは、こんな便利な書き方はできません。...と思いますよね?これ、 内部実装 としては引数のタイプによって呼び出す関数をスイッチしてるだけなのだそう。 え、じゃあ引数タイプで呼び出す関数をスイッチするデコレータを作ればいいのでは?と思ったのです。で、作ったのがこれ。 もうちょっとどうにかしたいなぁ、とは思っているのですが。 とりあえず動くからええやん?的な乗りです。 実際の使い方はこんな感じで、関数デコレータとして使います。下のほうのコメント行は出力結果です。 関数の引数に型アノテーションをつけなかった場合その引数はobject型、要するに何でも受け付けるものとして認識されます。さらに、優先順位は上に書いたものから順番ですので一番上に可変長引数を受けるものを書いてしまうと適切にスイッチされません。 以上のことに気を付けて使えばそこそこ使えるのではないでしょうか?Javaristaの方やC#勢の方は、ぜひ使ってみてください。 Pythonがもっともっと普及しますように! Written by Frodo

November 26, 2017 ポスト合唱コンクール

昨日学校の合唱コンクールがありました!Frodoのクラスはボロボロwですけど、なんとBourruのクラスが優勝したんですよ! 同学年のクラスの中でFrodoのクラスだけ賞にかすりもしないっていうw やる気と練習量の差が如実に出ましたね! やっぱり三年間やってきて最後だということもあり、若干の感傷がないわけでもないんですがそれは置いといて。 たまにはPythonistaっぽいことしないとなぁということで今回はこんなものを。 このモジュールはPythonで何か作ったけど依存関係まで考えて配布するのめんどくさい!っていうときにimport分の代わりとしてresolve関数を使えば配布先の環境にモジュールが存在しなかった場合、自動でこのモジュールと同階層にあるmodulesディレクトリに依存関係まで含めて要求モジュールをインストールしてくれるというものです。 ただしpipに依存しているので、配布先の環境にpipがなければ一緒ですが...。最近の環境でPython入っているのにpipがないということはないと思うのですが、Pythonのバイナリを含めて配布する場合は無理ということになってしまいます。 これからの課題はそこですね...。 一応resolve関数の解説 引数の詳細 引数名(位置指定の場合は位置) 変数型 意味、効果 mod_name (1番目) str import時のモジュール名 globals (2番目) dict import先の名前空間 (globals()で取得可能) mod_distname (3番目) str PyPI上のモジュール名 (省略可能・省略した場合mod_nameと同値) この関数はmod_nameで指定された名前のモジュールをglobalsで指定された名前空間にインポートします。 標準関数の__import__と同等の機能を提供しますが、mod_nameで指定されたモジュールが見つからなかった場合、pipを用いてこのモジュールと同階層のmodulesディレクトリにモジュールをインストールします。 mod_distnameが指定された場合、pipでインストールするときのモジュール名としてmod_distnameが使用されます。 mod_distnameが必要になる場合の例 P...