var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18Syo Ikeda
はじめに 2014年2月25日(火)、『ヤフーvsクラスメソッド「iOS 炎の7番勝負」』が開催されました。このイベント最大の注目点はなんといっても、対戦形式の勉強会だということ。事前告知の際にも「勝負」のキーワードに対する注目度が非常に高く、新たな試みに期待が高まっていました。14名の登壇者と約500人(会場とUSTREAM)の参加者が繰り広げる熱いイベントの様子をレポートします。 イベント概要 iOS開発にまつわる7つのテーマに沿ってヤフー、クラスメソッドそれぞれの登壇者が5分間の発表を行い、本イベントのために制作されたWebアプリケーションを使って参加者は登壇者に投票し、その得票数を競います。最終的な勝敗は総得票数ではなく、それぞれのセクションで勝敗を決し、勝利の多いチームが勝者となります。 会場の模様 いよいよ開演! クラスメソッド大橋さんの乾杯の音頭と共にいよいよ開演で
1. メソッドをクラスメソッドにするときは、デコレータを使う あるメソッドをクラスメソッドにするとき、 Python ではデコレータを使うことができる。 2.1 組み込み関数 によると、(太字は引用者による) classmethod( function) function のクラスメソッドを返します。 クラスメソッドは、インスタンスメソッドが暗黙の第一引数としてインスタンスをとるように、第一引数としてクラスをとります。クラスメソッドを宣言するには、以下の書きならわしを使います: class C: @classmethod def f(cls, arg1, arg2, ...): ... ふーむ、ここでも第一引数が必須で、それがクラスを参照するということか。Python のこういう書き方は、最初とっつきにくいと感じた。 (+_+) デコレータの書き方としては、関数の前に @classmeth
Pythonでは、クラス内で定義することの出来るメソッドが三種類用意されている。メソッド・クラスメソッド・スタティックメソッドの3種類だ。それぞれどんな特徴を持っているのだろうか? メソッド まず、メソッドはおなじみのインスタンスメソッドで、第一引数としてインスタンスを受け取り、呼び出す時には必ずインスタンスが必要となる。 class Foo(object): # メソッド def method(self, arg): pass Foo().method("arg") #OK Foo.method("arg") #これはエラー クラスメソッド クラスメソッドは第一引数としてクラスオブジェクトを受け取り、インスタンスが無くとも呼び出すことが出来る。 class Foo(object): # クラスメソッド @classmethod def clsmethod(cls, arg): pass
動機 C++のようなstaticメソッドを作ろうとしてはまったのでメモ。 参考 [Python] クラスの挙動まとめ #1 - 大カフェイン クラスの挙動まとめ #2 - 大カフェイン Python のクラスメソッド – デコレータ @classmethod, @staticmethod を使って | すぐに忘れる脳みそのためのメモ 3.2 標準型の階層 関数オブジェクトとメソッドオブジェクト まず最初に関数オブジェクトとメソッドオブジェクトがあることに気をつける。その両者については2番目のリンクがわかりやすい。要約すると 関数オブジェクトはクラスオブジェクトに代入されるとメソッドオブジェクトになる メソッドオブジェクトにもunboundメソッドとboundメソッドがある 関数オブジェクト+クラスオブジェクト = メソッドオブジェクト(unbound) 関数オブジェクト+クラスオブジェクト
Pythonの世界は、整数などの単純な値も含め、すべての値はobjectクラスを継承したクラスのインスタンスでできています。 >>> type(1) <type 'int'> >>> isinstance(1, object) True >>> type("hage") <type 'str'> >>> isinstance("hage", object) True
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く