タグ

classに関するU1and0のブックマーク (14)

  • self と cls とかが何か気になって調べてみた + @staticmethod - AWS / PHP / Python ちょいメモ

    python 書いてると”ふと”気になる self と cls を調べメモ。 なんで書くのかなぁという疑問が解消すると、結構気持ちよくかけるようになった気がします。書いてる人には、あたりまえ話ですいません。 # 各種メソッドとかスコープについては、何も説明ないので、別のサイトみて確認ください self について クラスの中で定義する インスタンス・メソッド (instance method)では、必ず第一引数に self を書きます。 class MyClass(object): def instance_method(self, x, y): print x+y my = MyClass() my.instance_method(1,2) 3 第一引数に self と書くのですが、呼び出し時には 第二引数以降を渡します。selfには「インスタンス自身」が入ります。自動的入る仕様なのですね

    self と cls とかが何か気になって調べてみた + @staticmethod - AWS / PHP / Python ちょいメモ
  • Pythonの「@staticmethod」はどのように役立つのか - モジログ

    Peterbe.com - Newfound love of @staticmethod in Python http://www.peterbe.com/plog/newfound-love-of-staticmethod Pythonのデコレータ「@staticmethod」はどのように役立つのか、かんたんな例で解説している。 class Printer(object): def __init__(self, text): self.text = text @staticmethod def newlines(s): return s.replace('\n','\r') def printer(self): return self.newlines(self.text) p = Printer('\n\r') assert p.printer() == '\r\r' ここで「@sta

    U1and0
    U1and0 2018/11/14
    staticmethodは、「ただの関数」を通常のモジュールレベルではなく、クラスレベルで定義したものと言える。「ただの関数」をクラスレベルで定義して、なんの意味があるのかというと、例えばこれを継承して、オーバーライ
  • 【CSS初心者入門】classとは何?使い方も解説! - WEBCAMP MEDIA

    U1and0
    U1and0 2018/10/21
    “class: 「分類名を割り当てる」ための役割があります。そのため、 同じclass名を、1ページ中に何度でも使用することが可能となっています。 id: 「固有名を割り当てる」ための役割があります。そのため、同じid名は、1
  • Python でclass内にdecoratorを持たせたい

    質問をすることでしか得られない、回答やアドバイスがある。15分調べてもわからないことは、質問しよう!新規登録して質問してみよう

    Python でclass内にdecoratorを持たせたい
    U1and0
    U1and0 2018/10/15
    decoratorメソッドのself引数を消すといかがですか。  ←どうしてこうなるのかわからないけど動く
  • スタティックメソッドは要らない子? - atsuoishimoto's diary

    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

    スタティックメソッドは要らない子? - atsuoishimoto's diary
  • Python: 色々なデコレータの作り方と使い方、そして本質

    Python にはデコレータという特徴的な構文がある。 この構文を使うと GoF のデザインパターンの一つ、デコレータパターンが作りやすくなる。 デコレータパターンは、ある関数やメソッドの処理内容のラッピングや、関数やメソッドのマーキングを通して様々な用途に使える。 まずは、デコレータの最も基的な使い方を以下に示す。 デコレータを使って修飾対象の処理をラッピングする。 サンプルコードでは ‘main’ 関数を 'decorator’ デコレータで修飾することで、元の処理内容に 'print’ 関数の実行を挿入している。 #!/usr/bin/env python # -*- coding: utf-8 -*- def decorator(func): def _decorator(*args, **kwargs): print('decorate') return func(*args,

    Python: 色々なデコレータの作り方と使い方、そして本質
    U1and0
    U1and0 2018/07/04
    “デコレータはクラスに対して使うこともできる。 以下のサンプルコードではクラスを関数のデコレータで修飾している。 これもデコレータがシンタックスシュガーに過ぎないということを考えれば自然に理解できる。 処
  • [Python][お勉強] Python入門(50) - 演算子のオーバーロード

    演算子が呼ばれると、対応する__XXX__といった前後にアンダースコアがつけられた関数が呼ばれる。また、そういったメソッドを他の通常のメソッドと区別して「フックメソッド」と呼ばれる。 __getitem__ __getitem__はインデクシングの処理に対応する「フックメソッド」。 対象クラスに定義されているか、対象クラスの継承ツリーに定義されていないとコールされない。 以下、__getitem__の例 >>> class C1: ... def __getitem__(self, index): ... return index * 100 ... >>> a = C1() >>> a[0] 0 >>> a[1] 100 >>> a[2] 200 >>> a[3] 300 >>> この__getitem__メソッドはループにも対応可。 >>> for b in a: ... if b >

  • operator — Standard operators as functions

    operator — Standard operators as functions¶ Source code: Lib/operator.py The operator module exports a set of efficient functions corresponding to the intrinsic operators of Python. For example, operator.add(x, y) is equivalent to the expression x+y. Many function names are those used for special methods, without the double underscores. For backward compatibility, many of these have a variant with

    operator — Standard operators as functions
    U1and0
    U1and0 2018/07/01
    四則演算オーバーロード
  • [Python] クラスに入門(宣言、インスタンス変数/メソッド、クラス変数/メソッド、スタティックメソッド、継承) - YoheiM .NET

    [Python] クラスに入門(宣言、インスタンス変数/メソッド、クラス変数/メソッド、スタティックメソッド、継承) クラスの基礎 Pythonは他の多くの言語と同じく、クラスを定義して使うことができます。具体的には以下のように定義します。 # クラスの定義 class MyClass(object): pass # クラスからインスタンスを生成 me = MyClass() print(me) # => <__main__.MyClass object at 0x100799b00> これで何も要素を持たないクラスを定義できました。ちなみにこの「何も要素を持たない」クラスは以外と便利なのです。 # 何も要素を持たないクラス class EmptyClass(object): pass # 要素を好きなように定義できるので、複数の変数をまとめた入れ物として扱える holder = Empt

    [Python] クラスに入門(宣言、インスタンス変数/メソッド、クラス変数/メソッド、スタティックメソッド、継承) - YoheiM .NET
    U1and0
    U1and0 2017/04/09
    インスタンス変数、インスタンスメソッド、クラス変数、クラスメソッド、スタティックメソッド。継承したときにサブクラス/スーパークラスのクラス変数参照する
  • インスタンスに動的にメソッドを追加する - PYTHONIC BOOM BOOM HEAD

    追記: 記事を公開してからおんなじような記事あったりするかなと思ってググったら2年前にIanさんがほとんど同じ内容書いてた。 Pythonでメソッドをクラスまたはインスタンスに動的に追加する - Ian Lewis しかも僕その記事はてブしてたよ… Interactive Shell で色々試してる時なんかにインスタンスにメソッドを追加したくなる時がある。 >>> class Person(object): ... def __init__(self, name): ... self._name = name ... >>> alice = Person("Alice") >>> bob = Person("Bob") こんなクラスがあって、幾つかインスタンスを作っているとする。で、self._nameを取得するメソッドが欲しくなったとしよう。 >>> def get_name(self)

    インスタンスに動的にメソッドを追加する - PYTHONIC BOOM BOOM HEAD
    U1and0
    U1and0 2016/11/17
    >>> Person.get_name = get_name というようにクラスの方に追加してやる。ただ、これだと当然ながら全てのインスタンスに影響が出る >>> alice.get_name() 'Alice' >>> bob.get_name() 'Bob' 影響が出るというか、実はaliceもbobもget_nameなんて持って
  • クラス作成

    Pythonではクラスを定義しそれを作成する(インスタンス化)ことができます。クラス化する事によって様々な恩恵を得ることができ、プログラミングの幅も広がります。 クラスの基礎 classと記述し、後にクラス名が続きます(今回の例ではTestClassがクラス名になります)。クラス名の後には必ず「 : 」(コロン)を付けましょう。 class TestClass: def __init__(self, code, name): self.code = code self.name = name classes = [] classes.append(TestClass(1, 'テスト1')) classes.append(TestClass(2, 'テスト2')) for test_cls in classes: print('===== Class =====') print('code

    クラス作成
  • Pythonの基礎 オブジェクト(クラス) - Pythonの学習の過程とか

    オブジェクトの使い方 オブジェクトとは? 変数や関数を、ひとまとまりにしたもの。 よく使う例えでは 車というオブジェクト 変数 タイヤ ボディ エンジン ハンドル 関数 タイヤの状態の取得やブレーキという操作 ドアが開いているかどうかのチェックや警告 エンジンの制御 ハンドルの入力にあわせたタイヤの操作 クラス関数はメソッドと呼ばれます Pythonでも C++などと基的には同じ考え方 もちろん継承もある クラスは設計図 インスタンスは実体 とえいます クラスを作成する 上記にあげた例と違ってすみません。 ドットインストールさんで例に挙げている、人名で書いてみます。 class Person(object): def __init__(self, name): self.name = name def greet(self): print "my name is %s " % self.

    Pythonの基礎 オブジェクト(クラス) - Pythonの学習の過程とか
  • Passing plots out of a class

  • とほほのPython入門 - クラス - とほほのWWW入門

    Python の クラス(class)は次のように定義します。クラス名は慣習的に大文字で始めます。 class MyClass: """A simple example class""" # 三重クォートによるコメント def __init__(self): # コンストラクタ self.name = "" def getName(self): # getName()メソッド return self.name def setName(self, name): # setName()メソッド self.name = name a = MyClass() # クラスのインスタンスを生成 a.setName("Tanaka") # setName()メソッドをコール print(a.getName()) # getName()メソッドをコール クラス定義の冒頭には、"""...""" で ドキュ

    U1and0
    U1and0 2016/10/12
    クラス階層 Python のクラスはすべて、object をルートとするクラス階層を構成しています。
  • 1