コピー2019.02.14Pythonにおけるselfの仕様が非常にめんどくさいものだったので、愚痴がてら記事を書いてみます目次まずselfって何?selfのウザいところまずselfって何?そのクラスから生成されたインスタンス自身を指すものです。javaとかならthis,swiftだとまんまselfに近い感じですかね。ちなみにこれ、予約語ではないそうで、やろうと思えばselfのことをhogeとでもpiyoとでも呼んでしまえるようです。慣例に基づき、一般的にはselfを使っているそうな。昔のPythonエンジニアが意地悪でなくてよかったですね。selfのウザいところ「メソッドを定義する時は引数として書かなきゃいけないのに代入は書く必要がない」という謎仕様です。分からないかと思いますが、まず下のコードを見て下さい。ここでSampleクラス内では、get_selfの引数としてselfが定義されています。ちなみにあるクラスのメソッドにおける第一引数はself(生成されるインスタンス自身)が予約されています。他のオブジェクトを第一引数に入れたくても無駄です。selfは割り込みおじさんの如く勝手に入ってきます。基本的に第一引数にはselfと書くことになります。厄介なのは、次のコードです。a.get_self()なんと!さっき引数にselfと定義したはずなのに引数を入れる場所が空っぽです。これじゃSyntaxErrorだ、動かないよ。ならず、、、普通に動きますTrueを出力します。実際にメソッドを呼び出すときには自動で代入されるから()内に書く必要がないという分かりにくい仕様になっているんです。書くんだったら書く、書かないんだったら書かないではっきりさせてほしい...で、メソッドを呼び出す時は自動で代入されるということで、呼び出す際の引数はいきなり定義時における第二引数から書いちゃってOKです。Hoge()print(h.sum(1,2))のように書いて大丈夫です。hookを仕込みpre-push時に強制的にmigrationを行うようにしてみました。a...PHPMAMPでCakePHP3のローカル開発環境をサクッと構築!【PHP】CakePHP3を使った業務を行うことになり、さあ実行環境をどう作ろうかと考えていました。DockerかVagrantを使おうかなどとも考えていましたが、よく考えたら本番環境はLAMPだったのでMAMPを使ってささっと済ませることにしま...Angular【Angular】Angularでcsvファイルの作成・ダウンロードAngularってかJavaScriptで表形式のデータからcsvファイルを作成し、ダウンロードするやり方です。htmlファイルにDL用のaタグ要素を作ります。今回の記事は前の記事の続きで、初心者がCloud9でPython3系のプログラムをどう動かしていけばいいのかを説明する内容になっています。初心者で新しくPythonを始める方は、ほとんどがPython2系ではなくPython3系を使...PHPCakePHP3のcontainとは?EagerLoadingを行う便利なメソッドCakePHP3のcontainメソッドは、EagerLoadingを自動で行ってくれる便利なメソッドです。CakePHP3のcontainメソッドは、引数に指定したアソシエーション先テーブルのデータを...Programming【Python】集合setが便利すぎる!特徴や主なメソッドをつらつらとPythonを勉強していて、コンテナの一つであるsetが便利すぎて感動したので特徴や使い方などまとめてみようと思います。コメントをキャンセルメールアドレスが公開されることはありません。*サイト上に表示された文字を入力してください。【Swift】frameとboundsの違いは?UIViewにどう影響するのか【Swift】オプショナル型とは?4種類のアンラップ方法と共に解説!【Angular】html文書をエスケープしないでそのままtemplateに表示するアーカイブ2019年9月2019年5月2019年4月2019年3月2019年2月カテゴリーAngularAWSCSSDockerExcelJavaScriptMySQLPHPProgrammingPythonSwiftタイトルとURLをコピーしました。