タグ

classに関するreboot_inのブックマーク (6)

  • Python の super() 関数の使い方

    Python でスーパークラスのインスタンスメソッドを呼び出すときに使える super() 関数の使い方をご紹介します。 Python 3 の場合 まずは例を見てください。 class Dog: def __init__(self, name): self.name = name class UltraDog(Dog): def __init__(self, name, type_): super().__init__(name) self.type = type_ ud1 = UltraDog("taro", "akita") print(ud1.name) このコードでは、 Dog のサブクラス UltraDog の __init__() メソッドの中で super().__init__(name) という書き方を使ってスーパークラス Dog の __init__() メソッドを呼び出

    Python の super() 関数の使い方
    reboot_in
    reboot_in 2021/03/15
    “Python 2 の場合は Python 3 と少し違って、 super() 関数には 2 つの引数を渡す必要があります。具体的には super(クラス, インスタンス自身) とやって使います。”
  • Pythonでインスタンスの状態をダンプするにはvars()を使う - minus9d's diary

    以下のような、インスタンス変数としてval1とval2を持つMyClassというクラスを考えます。 class MyClass: def __init__(self, val1, val2): self.val1 = val1 self.val2 = val2 以下のように、このクラスのインスタンスを作り、printしてみます。 mc = MyClass(10, 20) print(mc) すると以下のような文字列が表示されるだけで、インスタンスのもつインスタンス変数は表示できません。 <__main__.MyClass object at 0x00000000043E4A90> インスタンス変数を全部表示するには、vars()を使うとよいようです。 print(vars(mc)) とすると、 {'val1': 10, 'val2': 20} と、インスタンス変数が表示できました。 ただし

    Pythonでインスタンスの状態をダンプするにはvars()を使う - minus9d's diary
    reboot_in
    reboot_in 2020/12/10
    “インスタンス変数を全部表示するには、vars()を使うとよいようです。 print(vars(mc))”
  • Python基礎講座(13 クラス) - Qiita

    class Spam: val = 100 def ham(self): self.egg('call method') def egg(self,msg): print("{0}".format(msg)) print(("{0}".format(self.val))) spam = Spam() spam.ham() 結果は以下になります。 call method 100 Pythonではクラスはclass クラス名 :で作成します。クラス名の先頭は大文字です。 クラス変数とクラス内関数(=メソッド)は字下げを使用して定義します。 オブジェクトは オブジェクト = クラス() で生成します。 メソッドは オブジェクト.メソッド()で呼び出します。 上記のプログラムを日語で説明すると クラスSpamのオブジェクトspamを生成します spamオブジェクトがhamメソッドを呼び出します

    Python基礎講座(13 クラス) - Qiita
    reboot_in
    reboot_in 2020/10/14
    “オブジェクト指向プログラミングで重要な要素であるカプセル化。 Pythonでは変数やメソッドの名前の前に"__"(_を2つ)をつけることによりprivateにできます。”
  • ES6 Multiple Inheritance

    Multiple inheritance was often something that leads to the old know diamond problem. This problem was “solved” by Java/C# using the Interfaces, classes that do no implement, this is used in PHP too. I highly recommend that you have a look at: ‘Interface’ Considered Harmful by Robert C. Martin (Uncle Bob). That was the post that inspired me to search something releated to JavaScript. Alternate meth

  • [Python]クラス継承(super) - Qiita

    名前の通り,基底クラスの機能を持った派生クラスを作ります. *途中で力尽きたので多分加筆します 一つのクラスの継承 ここは,単純に,Creatureクラスを元に,Warrior, Magicianクラスを作ってます. 初期levelに応じて,能力を上昇させています. status(self)関数では,パラメータの列挙を行っています.(テスト用) __init__ はインスタンス生成の際に実行されます. Worrior, Magicianクラスでは,武器をもたせたり,職業名の変更を行っています. class Creature(object): def __init__(self, level=1, weapon=None): self.level = level self.hp = 0 self.mp = 0 self.attack = 0 self.defence = 0 self.wea

    [Python]クラス継承(super) - Qiita
  • インポート

    Pythonのインポート(import)は標準ライブラリのインポートはもちろん、自ら作成したモジュールのインポートも行うことができます。 import, from まずは簡単なモジュールファイルを用意します。下記コードをtestmod.pyという名前で作業ディレクトリに保存してください。 class TestClass: def __init__(self): print('create TestClass') def test_method(self, val): print('call test_method') print(val) 次は上記モジュールを実行(インポート)するコードを記述します。Pythonはコード中のどこにimport、fromを記述してもエラーにはなりません。 import testmod test_class_1 = testmod.TestClass() te

    インポート
    reboot_in
    reboot_in 2017/06/11
    “from testmod import TestClass”
  • 1