python クラスの継承
クラスの継承
クラスの内容(メソッド、定義)は、子クラスに引き継ぐ(継承すること)ことができる。
引き継ぐためには、以下のように、子クラスの引数の中に親クラスの名前を入れでクラスを作成する。
以下、例。
#親クラス class Parent(): def PrintGreeting(self): print("どうもこんにちは。") def PrintWho(self): print("わたしは親です") #子クラス class Child(Parent): pass
次に、親クラス、子クラスのオブジェクトを作り、メソッドが子クラスに継承されていることを確認する。
#main_1-1.py #親クラス class Parent(): def PrintGreeting(self): print("どうもこんにちは。") def PrintWho(self): print("わたしは親です。") #子クラス class Child(Parent): pass suzuki_ichiro = Parent() #親クラスのオブジェクト suzuki_taro = Child() #子クラスのオブジェクト #内容確認 print("suzuki_ichiro.PrintGreeting():実行結果") suzuki_ichiro.PrintGreeting() print("suzuki_ichiro.PrintWho():実行結果") suzuki_ichiro.PrintWho() print("suzuki_taro.PrintGreeting():実行結果") suzuki_taro.PrintGreeting() print("suzuki_taro.PrintWho():実行結果") suzuki_taro.PrintWho() ''' 【実行結果】 suzuki_ichiro.PrintGreeting():実行結果 どうもこんにちは。 suzuki_ichiro.PrintWho():実行結果 わたしは親です suzuki_taro.PrintGreeting():実行結果 どうもこんにちは。 suzuki_taro.PrintWho():実行結果 わたしは親です '''
上記の結果から、子クラスでメソッドを再度定義しなくても継承されていることが分かる。
ただし、このままだと[親クラス]=[子クラス]となるので、分けた意味がないため[オーバーロード]などを使用して、
子クラスを親クラスと違った機能を持たせたりする。
OSインストールからLチカができるまで[RaspberryPi3]
以下自分がやった手順。備忘録。
- OSのダウンロード
- キーボードの日本語入力を可能にする設定
- WiringPiのインストール
- Lチカ(コマンドでやる場合)
- Lチカ(C言語でやる場合)
OSのダウンロード
インストールはLIGの下記リンクをそのまま実施。
自分の場合は電源やキーボードはすでに持っていたもので間に合わせた。
liginc.co.jp
自分の場合は、初回起動時に出てきたウィンドウでついでにwi‐fiの設定もした。
OSバージョンが参考リンクより新しいせいか、表示の日本語設定もすんなりできたので、ウィンドウの指示通り操作したらできた気がする。リンク先にあるような作業はせず、問題なくできた。
キーボードの日本語入力を可能にする設定
下記リンクの通り実施。
usortblog.com
リンクでは「英語⇔日本語」の切り替えを「cntr+space」キーで実施するようにしているが、「IBusの設定」ウィンドウ内、「次の入力メソッド」右端の「…」キーを押すと、任意のものに変更ができる。
自分は「半角/全角」キーで切り替えるよう設定したのだが、初回は反映されなかった。
再起動したらしっかりと動作した。
WiringPiのインストール
WiringPiはラズベリーパイのGPIOを簡単に操作するためのライブラリ。
これがあると、GPIOの操作が簡単になる。
Lチカをやらないにしても、これは入れておいた方が後々楽になる。
[インストール方法]
Lxterminal(コマンドプロンプトみたいなやつ)を開いて下記のコマンドをひとつずつ入力する。
ウェブにつなげる状態にして最初に下記のコマンドを入力する。
- git clone git://git.drogon.net/wiringPi
次に
- cd wiringPi
次に
- ./build
終わり。
Lチカ(コマンドでやる場合)
下記参照しつつ実施。問題なくできたが、コマンドはなじみが薄いのでCの方がやりやすい。
tool-lab.com
Lチカ(C言語でやる場合)
下記を参照しながらやったらできた。
make.bcde.jp
組み込みに慣れている自分はこっちの方が分かりやすい。(コマンドでコンパイルを行う事には違和感有)
慣れていない人としては下記でイメージすると一応作業はできると思う。
以下、注意点。
CS+やQuartusなどしか使っていない自分は、この注意点が案外ストレスになるが他にやり方があるかは探す。